- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在单击某些文本时下载特定文件。我希望典型的“另存为..”对话框可以选择保存文件的位置,但它没有出现。请求和响应都正常。
请求/响应 header
GET /Survey/GetSurveyFile?survey=1085&surveyFileType=2 HTTP/1.1
Host: localhost:50518
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36 OPR/31.0.1889.99
Accept: /
X-Requested-With: XMLHttpRequest
======================
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/octet-stream
Server: Microsoft-IIS/8.0
X-AspNetMvc-Version: 5.2
Content-Disposition: attachment; filename="1052__1183__1291__Variable Header Definition.txt"
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?UzpcVlNTb3VyY2VcUHJvamVrdGVcTU1JXGJmdWVudGVzXE1NSVxNaW5kc2hhcmUuTU1JXE1NSVxTdXJ2ZXlcR2V0U3VydmV5RmlsZQ==?=
Persistent-Auth: true
X-Powered-By: ASP.NET
Date: Mon, 17 Aug 2015 14:21:48 GMT
Content-Length: 333
我的代码:
Javascript
function getfile(filetype) {
var SurveyId = $('#SurveyID').val();
var url = '/Survey/GetSurveyFile';
$.ajax({
type: 'GET',
url: url,
data: { survey: SurveyId, surveyFileType: filetype },
success: function (result) {
// ?
},
error: function (result) {
// handle errors
location.href = "/Home/"
}
});
}
Controller
public FileResult GetSurveyFile(string survey, string surveyFileType)
{
try
{
var tmpSurvey = EntityModelDataProvider.GetSurveyByID(int.Parse(survey));
var tmpSurveyFileTypes = EntityModelDataProvider.GetSurveyFileTypes();
var tmpSurveyFileType = tmpSurveyFileTypes.FirstOrDefault(_sft => _sft.SurveyFile_Type_Id == int.Parse(surveyFileType));
var tmpFile = EntityModelDataProvider.GetSurveyFilesBySurveyAndType(tmpSurvey.Survey_PK, tmpSurveyFileType.SurveyFile_Type_PK);
if (tmpFile != null)
{
byte[] fileBytes = tmpFile.SurveyFile;
string fileName = tmpFile.SurveyFile_Name;
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
else
throw new Exception("File not found!");
}
catch (Exception ex)
{
throw ex;
}
}
知道如何才能获得所需的行为吗?
最佳答案
原始(阅读更新后的部分)
看这里download file using an ajax request
我已经在我的机器上尝试了下一个代码
function getfile() {
$.ajax({
type: 'get',
url: '@Url.Action("Download")',
success: function () {
window.location = '@Url.Action("Download")';
}
});
}
$(function() {
$('h2').on('click', getfile);
});
public FileResult Download()
{
var bytes = System.IO.File.ReadAllBytes(Server.MapPath("~/123.txt"));
return File(bytes, System.Net.Mime.MediaTypeNames.Application.Octet, "123.txt");
}
更新(v2)
你不需要ajax请求。更改 window.location 就足够了:
function getfile() {
var p1 = Math.random().toString();
var p2 = Math.floor(Math.random() * 100);
window.location = '@Url.Action("Download")?' + 'p1=' + p1 + '&' + 'p2=' + p2;
}
$(function() {
$('h2').on('click', getfile);
});
public FileResult Download(string p1, int p2)
{
var bytes = System.IO.File.ReadAllBytes(Server.MapPath("~/123.txt"));
return File(bytes, System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("123_{0}_{1}.txt", p1, p2));
}
关于javascript - 使用 FileResult 保存文件并提示 'Save as...',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32052950/
有时我在调用Web服务以获取凭证且Web服务为KO时出现错误。我需要重定向到其他操作:我需要执行以下操作: public virtual FileResult Ticket(int operati
我正在尝试通过 Controller ActionResult 返回大文件,并实现了如下所示的自定义 FileResult 类。 public class StreamedFileResult
我的 View 中有一个列表,其中包含一个 ActionLink 按钮“下载”,我希望他们在单击该链接时下载一个文件。该文件位于我项目的 map 中。 查看: Your active lin
我正在使用 ASP.NET Core 2.1 ActionResult 从 Controller 返回一个文件: [HttpGet] public ActionResult Download() {
我正在研究 ASP.NET Core API。 API 是数据库驱动的。 我将图像存储在数据库中,我的 ArtistImage.cs 实体如下所示: ArtistImage.cs public cla
是否可以在 C# 中从 FileResult 获取 byte[]? 最佳答案 FileResult是一个 abstract 类,所以它不会是底层 instance 类型 - 假设正确的 overloa
我有一个返回 FileResult (这是一个 png 图像)的操作。我非常希望浏览器能够缓存结果,因为对于给定的请求 uri,它不会改变。 我使用路由使 uri 看起来像这样 - http://lo
我需要在单击某些文本时下载特定文件。我希望典型的“另存为..”对话框可以选择保存文件的位置,但它没有出现。请求和响应都正常。 请求/响应 header GET /Survey/GetSurveyFil
我正在编写 url 重定向器。现在我正在为此苦苦挣扎: 假设我有这个方法: public FileResult ImageRedirect(string url) 然后我将此字符串作为输入传递:htt
在我的 Controller 中,我有一个 ActionResult 它返回一个文件。 [HttpPost] public ActionResult ExportCSV(ReportResultVie
我有一个返回文件结果(返回 PDF 文件)的 MVC 方法,我需要在 src 标签中使用相同的 url 并在浏览器中显示它。 例如我的示例代码如下: public FileResult GetAtta
这可能很简单,但这里是: 我正在我的 MVC3 应用程序中实现一个 excel 可下载报告。我过去使用过这种方法并且效果很好,但是在这种情况下,报表中可能不存在销售数据。这是我的代码: 我在 Repo
出于模拟目的,我想将 FileResult 输出到磁盘上的实际文件。 有没有办法获取 FileResult 的内容并将其写入文件?FileResult 上公开的属性有点小。 我正在寻找类似的东西: v
我有一个返回 FileResult 的 MVC C# Controller [HttpPost] public FileResult FinaliseQuote(string quot
我有一个操作将 Excel 作为自定义 FileResult 返回。我的解决方案基于 ClosedXml库(内部使用 OpenXml)。我的 XlsxResult 类使用服务器上的只读 .xlsx 文
我有一个操作将 Excel 作为自定义 FileResult 返回。我的解决方案基于 ClosedXml库(内部使用 OpenXml)。我的 XlsxResult 类使用服务器上的只读 .xlsx 文
我一直在研究我的 ASP.NET MVC 应用程序如何记录不成功/不完整的下载。我有一个 Controller 处理当前返回 FileResult 的文件请求。我需要记录的是 IP 地址、文件名和下载
使用 AWSSDK.S3 nuget 包,我试图返回一个从 S3 存储桶中检索到的文件。我的出发点是基于此 SO answer 中给出的示例. 示例 Controller 代码: public Fil
我正在尝试使用 jQuery 动态更改图像的来源。这是我们之前所做的一个示例: $('#resultsDiv').on('mouseover', '.cardImage', function() {
我有一个按钮,可以通过在 Controller 中运行保存函数来保存表单。该 Controller 的形式如下: [HttpPost] public ActionResult Save(ViewMod
我是一名优秀的程序员,十分优秀!