【发布时间】:2019-12-22 11:02:14
【问题描述】:
我希望在第一次点击链接时在新选项卡中显示 pdf 文件作为预览,然后允许用户下载文件。
所以我寻找答案,他们大多说我应该包括这两个标题
Response.AddHeader("Content-Disposition", "inline; filename=\"" + filName + "\"");
Response.AddHeader("Content-Type", "application/pdf");
但它不起作用,并且 pdf 文件刚刚开始下载。这是我的代码:
C#:
public FileContentResult GetVisaAproveFile(Guid id)
{
var request = visaRequestRepository.GetById(id);
AttachedFile ApprovedAttachedFile = request.AttachedFiles.FirstOrDefault(f => f.DocType == DocType.ApprovedDocument);
byte[] filByte = ApprovedAttachedFile?.FileContent ?? new byte [0];
string filName = ApprovedAttachedFile?.AttachFileSource ?? "بدون عنوان";
Response.Clear();
Response.AddHeader("Content-Type", "application/pdf");
Response.AddHeader("Content-Disposition", "inline; filename=\"" + filName + "\"");
return File(filByte, MimeMapping.GetMimeMapping(filName));
}
JavaScript:
$scope.onShowCertificate = function (e) {
debugger;
var id = e.key.VisaReqId;
var url = $window.location.origin + "/UploadFile/GetVisaAproveFile/?id=" + id;
$window.open(url, '_blank');
};
HTML:
<div data-options="dxTemplate:{ name:'Certificate' }">
<i class='glyphicon glyphicon-download-alt ajaxresub'
ng-if="item.value == 8"
style='color: blue;cursor: pointer !important;'
ng-click="onShowCertificate(item)"></i>
</div>
提前感谢:)
【问题讨论】:
标签: javascript c# html angularjs asp.net-mvc