在C# .NET MVC中使用Ajax下载文件,可以通过以下步骤实现:
以下是一个示例代码:
前端页面(HTML/JavaScript):
<button id="downloadBtn">下载文件</button>
<script>
$(document).ready(function() {
$('#downloadBtn').click(function() {
$.ajax({
url: '/Controller/DownloadFile',
type: 'GET',
success: function(data) {
// 创建临时下载链接
var blob = new Blob([data]);
var downloadUrl = URL.createObjectURL(blob);
// 创建隐藏的<a>标签并模拟点击
var a = document.createElement('a');
a.href = downloadUrl;
a.download = 'filename.pdf';
a.style.display = 'none';
document.body.appendChild(a);
a.click();
// 清理临时下载链接
URL.revokeObjectURL(downloadUrl);
}
});
});
});
</script>
后端控制器(C#):
public class Controller : Controller
{
public ActionResult DownloadFile()
{
// 获取要下载的文件路径或数据
string filePath = "path/to/file.pdf";
// 读取文件数据
byte[] fileData = System.IO.File.ReadAllBytes(filePath);
// 设置响应头
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=filename.pdf");
// 写入响应流
Response.BinaryWrite(fileData);
Response.Flush();
Response.End();
return null;
}
}
请注意,上述示例中的路径、文件名和文件类型仅作为示例,您需要根据实际情况进行相应的更改。
推荐的腾讯云相关产品:腾讯云对象存储(COS)
请注意,以上答案仅供参考,具体实现方式和推荐的产品可能因实际需求和环境而有所不同。
领取专属 10元无门槛券
手把手带您无忧上云