通过POST ajax调用下载文件
Download file by POST ajax call
我有一个Asp.Net MVC项目,在我看来,这是一个延伸:
$.ajax({
beforeSend: function () {
LoadStart();
},
complete: function () {
LoadStop();
},
//async: false,
contentType: 'application/json, charset=utf-8',
dataType: 'json',
type: 'POST',
url: '@Url.Action("MyAction", "MyController")',
data: JSON.stringify(
{
Param1: 1,
Param2: 2
}),
success: function (data) {
$("#pdf-content").show();
// Here, fill DIV (pdf-content) with PDF.
},
fail: function () {
alert("Fail");
}
});
在MyAction
中,我有:
[HttpPost]
public ActionResult MyAction(int Param1, int Param2)
{
// Code ...
MemoryStream stream = new MemoryStream();
outPdf.Save(stream);
byte[] fileContents = stream.ToArray();
return File(fileContents, "application/pdf", "myFile.pdf");
}
如何在DIV中显示PDF,甚至直接下载而不显示?
在这种情况下,最佳解决方案是:在POST方法中,使用唯一名称(例如GUID)将文件保存在服务器上,并将此GUID返回给客户端。
然后发出get请求,通过guid找到您的文件,并将文件返回到客户端并从服务器中删除。
创建一个可以删除所有旧文件的服务是非常好的。
相关文章:
- 如何在生成下载文件时显示加载动画
- 直接下载文件,而不是从window.open(url)
- Javascript运行php文件,然后下载文件
- 在单击href链接的同时下载文件
- 通过javascript下载文件时设置文件名
- HTML锚标记无法在android平台中下载文件
- 链接/按钮从子文件夹下载文件--浏览器只是浏览
- iPhone强制下载文件
- 正在下载文件,同时加载另一个页面
- 如何在node.js中只下载文件的前10 KB
- 如何使用XMLHttpRequest下载文件
- 使用angular js在前端下载文件
- 使用blob从ajax结果下载文件
- 通过Android Chrome浏览器下载文件
- 使用AJAX下载文件.来自SD卡
- 如何使用phonegap从android中的URL下载文件
- 使用ajax下载文件
- 无法使用Angular JS和spring MVC打开下载文件
- 无法使用API-node.js从Google Drive下载文件
- 点击jQuery按钮下载文件