Javascript 如何将文件返回给用户?
我正在尝试将文件返回给用户 “GetExcel”似乎可以工作,在调试中我可以看到“ba”有数据 该方法完成了,但似乎没有返回到浏览器-我希望看到文件下载对话框Javascript 如何将文件返回给用户?,javascript,c#,Javascript,C#,我正在尝试将文件返回给用户 “GetExcel”似乎可以工作,在调试中我可以看到“ba”有数据 该方法完成了,但似乎没有返回到浏览器-我希望看到文件下载对话框 C# public FileResult GetExcel() { using (ExcelPackage pck = new ExcelPackage()) { ExcelWorksheet ws = p
C#
public FileResult GetExcel()
{
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");
ws.Cells["A1"].Value = "LBHERE";
var ba = pck.GetAsByteArray();
return File(ba, "text/plain", "testFile.txt");
}
}
Javascript
function clickedTest() {
alert("Test clicked");
$.get(myPath + "/Employee/GetExcel", { }, function (data) {
})
};
jQuery的$.get()
函数通过AJAX将数据从网页拉入客户端脚本。如果你想下载一个文件,这不是你想做的。相反,您应该打开一个新选项卡,该选项卡设置为要下载的文件的URL
试试这个:
function clickedTest() {
window.open(myPath + "/Employee/GetExcel", "_blank");
}
如果您的浏览器仍然没有启动下载,而只是显示了一个文件,那么您可能需要更进一步
在服务器端代码中的某个地方,当您有权访问响应对象时,您应该将Content Disposition头设置为attachment,并为您提供的电子表格提供文件名。这将通知您的浏览器您请求的文件是要下载的,而不是显示的
这可以通过以下方式完成:
Response.AddHeader("Content-Disposition", "attachment;filename=myfile.xls")
当然,用电子表格的正确文件名替换myfile.xls
。jQuery的$。get()
函数通过AJAX将网页中的数据拉入客户端脚本。如果你想下载一个文件,这不是你想做的。相反,您应该打开一个新选项卡,该选项卡设置为要下载的文件的URL
试试这个:
function clickedTest() {
window.open(myPath + "/Employee/GetExcel", "_blank");
}
如果您的浏览器仍然没有启动下载,而只是显示了一个文件,那么您可能需要更进一步
在服务器端代码中的某个地方,当您有权访问响应对象时,您应该将Content Disposition头设置为attachment,并为您提供的电子表格提供文件名。这将通知您的浏览器您请求的文件是要下载的,而不是显示的
这可以通过以下方式完成:
Response.AddHeader("Content-Disposition", "attachment;filename=myfile.xls")
当然,用电子表格的正确文件名替换
myfile.xls
。改用location.href=myPath+“/Employee/GetExcel”
或使用XHR2下载文件。常规的jQuery.get
方法不适用于文件下载。如果您添加为答案,我将勾选它…请改用location.href=myPath+“/Employee/GetExcel”
或使用XHR2下载文件。常规的jQuery.get
方法不适合文件下载。如果您添加为答案,我将勾选它。。。