我有一个应用程序,允许上传.pdf,.png,.jp(e)g,.doc和.docx等文件,如下所示
Chronic.time_class = Time.zone
这些文档以字节数组(byte [])的形式存储在数据库中。
现在我想提供一个允许某人打开或下载文件的链接。
<button type="button" ngf-select class="btn btn-warning btn-block"
ngf-change="vm.setCv($file, vm.person)">
Add Doc
</button>
vm.setCv = function ($file, person) {
if ($file) {
DataUtils.toBase64($file, function(base64Data) {
$scope.$apply(function() {
person.cv = base64Data;
person.cvContentType = $file.type;
});
});
}
};
上述功能适用于pdf和图像文件,但不适用于doc和docx文件。
我的问题是如何修改此代码,以便即使浏览器不允许或无法打开.doc和.docx文件,它也至少允许以正确的格式下载文件。
答案 0 :(得分:1)
将您的数据转换为 blob 并分配给 a 标记。它将下载所有类型的文件。这个解决方案对我有用!!将您的 base64 转换为 blob here
var myBlob = new Blob([data],{type:type})
var blobURL = (window.URL || window.webkitURL).createObjectURL(myBlob);
var anchor = document.createElement("a");
anchor.download = fileName; // Downlaod File Name
anchor.href = blobURL;
anchor.click();