txt 檔案可以打開下載后
影像和pdf等都不可以。
vue.js 代碼
onDownload(docId, docName) {
return new Promise(() => {
this.deviceTechDocSvc.downloadDeviceTechDoc(docId).then((resp) => {
if (resp.status == 200) {
let blob = new Blob([resp.data], {
type: resp.headers["content-type"], //pdf 'application/octet-stream;charset=utf-8'
});
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
// 兼容IE
window.navigator.msSaveOrOpenBlob(blob, docName); // 可以自定義檔案名稱及后綴
} else {
// 兼容Google及fireFox
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
var url = window.URL.createObjectURL(blob); // 創建url
a.href = url;
a.download = docName;
a.click();
a.remove();
window.URL.revokeObjectURL(url); // 釋放url
}
}
});
});
},
后端代碼
/// <summary>
/// 檔案下載
/// </summary>
/// <param name="docId"></param>
/// <returns></returns>
[HttpPost("{docId}")]
public async Task<FileStreamResult> Download(Guid docId)
{
try
{
dynamic model = new ExpandoObject();
model.DocId = docId;
var entity = this.logic.Get(model);
if (entity != null)
{
//檔案真實地址
string fileName = $"{webHostEnvironment.ContentRootPath}\\uploadDeviceTechDocs\\{entity.DeviceId}\\{entity.DocUri}";
FileInfo fileInfo = new FileInfo(fileName);
if (fileInfo.Exists)
{
FileStream fileStream = fileInfo.OpenRead();
return new FileStreamResult(fileStream, entity.MimeType);
}
}
return null;
}
catch (BusinessLogicLayerException ex)
{
throw new Exception(ex.Message);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/247496.html
標籤:ASP.NET
