angularjs - 如何处理来自控制器的下载返回文件结果?MVC
问题描述
我无法在 js 中下载文件结果。我正在将文件结果返回给 js,但不知道如何下载它
简而言之,我将 word 文档从控制器返回到 js,我需要在其中下载它并在 js 中处理它。
我正在调用方法和文件结果的 js 方法正在返回。
vm.establishmentAllRecord = function (page) {
if (page != undefined) {
vm.page = page;
}
var searchCriteria = {
From: vm.From,
To: vm.To,
Region: vm.SelectedRegion
}
surveyService.establishmentAllRecord(searchCriteria, (vm.page * vm.pagesize), vm.pagesize, vm.sortBy, vm.sortingDirection).then(function (d) {
var result = JSON.parse(d.data.data);
???
});
我需要问我如何处理来自控制器的返回文件结果???这个地方和下载
希望您的建议
编辑:
我从控制器返回文件系统是这样的,
FileResult result1 = PrintSurveyDetailsReport(VisitId);
return result1;
result1 contains 'ContentType="application/octet-stream"' , "FileContents" and "FileDownloadName"
解决方案
使用以下功能
var downloadFile = function (data, fileName, contentType) {
contentType = contentType || "application/octet-stream";
var blobObject = new Blob([data], {type: contentType});
try {
window.navigator.msSaveOrOpenBlob(blobObject, fileName);
}
catch (exp) {
var link = document.createElement('a');
link.setAttribute('href', URL.createObjectURL(blobObject));
link.setAttribute('download', fileName);
document.body.appendChild(link); // Required for FF
link.click();
document.body.removeChild(link);
}
};
推荐阅读
- python - 在 Python 中使用多列将行合并为一
- python - 员工用户无法登录 django 管理面板
- azure-active-directory - Azure AD - 基于组成员身份的自定义声明
- python - 导入 csv:从第一行的列名中删除文件名
- php - Symfony 2.8 和 PHP 7.4:警告:“continue”定位开关等同于“break”。作曲家是最新版本
- modelica - 记录数组的条件声明
- python - 将 CSV 文件转换为列表字典
- java - 模拟方法不起作用
- vue.js - [Vue 警告]:渲染错误:“TypeError:无法读取未定义的属性‘组织’”
- asp.net-core - 当您在回调页面中并且用户想要取消注册时如何从外部提供商注销