我正在使用FileContentResult(byte[], MediaTypeNames.Application.Octet, "file.xlsx"
从C#API作为八位字节流返回一个Excel文件(效果很好)
然后我想从js打开下载文件提示,除了文件已损坏之外,一切都正常运行
我一直在尝试这些帖子中的各种解决方案,并且Excel文件始终会导致损坏
JavaScript: Create and save file
JavaScript blob filename without link
还有FileSaver.js
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false,
contentType: 'application/json',
success: function (result)
{
saveFile(result);
}
});
我知道该文件可以正常工作,因为当我通过Swagger测试该文件时,效果很好
有什么想法吗?
答案 0 :(得分:0)
解决方法:
返回该文件的base64,并在该页面上使用a
属性创建值为{p>的href
元素
data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,
然后将您的base64
添加到该值,所以
'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,'+base64
然后在该链接上执行.click()
Conversion of Base64 Encoded into XSLX
您可以使用download=""
属性指定文件名