#angularjs #ajax #model-view-controller #ms-word #fileresult
#angularjs #ajax #модель-вид-контроллер #ms-word #результат файла
Вопрос:
Я не могу загрузить результат файла в 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"
Ответ №1:
Используйте следующую функцию
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);
}
};
Комментарии:
1. я возвращаю файловую систему с контроллера таким образом: ‘FileResult result1 = PrintSurveyDetailsReport(VisitId); return result1;’ и result1 содержит ‘ContentType=»application / octet-stream»‘, «FileContents» и «FileDownloadName» как использовать это в вашем методе? Я новичок в MVC
2. Загружаемый файл(результат. Содержимое файла, результат. Имя_загрузки файла);
3. @было ли три параметра в функции DownloadFile?
4. это необязательно, и поскольку ваш тип содержимого в файле — «application / octet-stream», вам не нужно передавать его, поскольку это значение по умолчанию, сработало ли это? если да, пожалуйста, проголосуйте и отметьте это как правильное. Спасибо.
5. @wasif я получаю это как Data.result. Содержимое файла. В функции в angular у меня есть данные, и она показывает мне содержимое файла и загрузку файла, но выдает эту ошибку: не удается прочитать свойство ‘FileContents’ неопределенного