我在 Laravel 中创建了控制器,其中包含以下代码
$doc = Document::find($id);
if (Storage::disk('local')->exists($doc->path)) {
return Storage::disk('local')->get($doc->path);
}
在我的前端,我使用 javascript 以编程方式下载带有以下代码的文件(可以使用 blob 还是有任何其他方法可以做到这一点?)
async downloadDocument() {
DocService.downloadDoc(this.document.id).then((response) => { // Service that handles ajax call
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement("a");
link.href = url;
link.setAttribute("download", this.document.name);
document.body.appendChild(link);
link.click();
link.remove();
});
},
我可以下载并查看 txt、php 文件的内容,但是当我尝试下载图像、pdf 等文件时,文件内容为空或不可读。