使用ajax下载文件
本文关键字:文件 下载 ajax 使用 | 更新日期: 2023-09-27 18:00:20
我在表单上有一个提交按钮,当按下该按钮时,表单将被提交,并在服务器硬盘上创建一个Excel文件(C:''ExcelFiles)。
完成后(在提交反表单后),我想使用Ajax下载这个文件。
这就是我所做的,但它不起作用:
$(document).on('click', '#saveButton', function () {
$('#saveMessage').empty();
$('#saveMessage').append("<p>Your file has been stored in C:''ExcelFiles</p>");
var data = $('#fileName').val();
alert(data);
$.ajax({
type: 'POST',
url: '/Calculation/Download',
data: data,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (returnValue) {
window.location = '/Calculation/Download?fileName=' + returnValue;
}
});
});
我的控制器操作如下:
[HttpGet]
public virtual ActionResult Download(string fileName)
{
string fullPath = Path.Combine(Server.MapPath("~/ExcelFiles"), fileName);
return File(fullPath, "application/vnd.ms-excel", fileName);
}
现在什么都没发生。我做错了什么?
您无法通过.ajax从服务器下载文件(由于安全原因)。但是,您可以将浏览器指向该位置并下载文件。解决方案应该是这样的:
$(document).on('click', '#saveButton', function () {
$('#saveMessage').empty();
$('#saveMessage').append("<p>Your file has been stored in C:''ExcelFiles</p>");
var data = $('#fileName').val();
window.location = '/Calculation/Download?fileName=' + data ;
});