我正在尝试使用blob url设置为angularjs'在对话框中显示PDF。范围变量。这适用于谷歌浏览器,但它似乎不适用于IE,Edge或Firefox(最新版本)。
C#controller:
HttpResponseMessage result = null;
Stream stream = new MemoryStream(fileContent);
result = Request.CreateResponse(HttpStatusCode.OK);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
result.Content.Headers.ContentDisposition.FileName = fileName;
result.Content.Headers.Add("x-filename", fileName);
return result;
- >这里' fileContent'是一个字节数组。
角度控制器:
var data = $.param({
ID: fileRowID
});
$http.post('api/getFileData', data, { responseType: 'arraybuffer' }).success(function (response) {
var file = new Blob([(data)], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(file);
$scope.fileContent = $sce.trustAsResourceUrl(fileURL);
})
HTML:
< object style="width:100%; height:600px" type="application/pdf" data="{{fileContent}}" >< /object >
这段代码仅适用于Chrome。 <object>
和<embed>
无法使用IE,Edge或Firefox。我也试过了<iframe>
,但blob网址并没有使用&#39; src&#39; <iframe>
的属性。我不想使用msSaveBlob&#39;或者&#39; msSaveOrOpenBlob&#39;因为要求是显示PDF而不是下载。