我使用带有Laravel API的Vue。我创建了一个fileManger。PDF文件可以很好地下载。但.docx文件在下载后会损坏。
控制器
public function downloadFile(Request $request, File $file)
{
$headers = array(
'Content-Type: '.$file->mime_type,
);
return Storage::disk('local')->download($file->path, $file->name, $headers);
}Vue/Vuex
export const downloadFile= ({ commit }, {endpoint, file}) => {
return axios.get(endpoint).then((response) => {
console.log(file.mime_type )
let blob = new Blob([response.data], { type: file.mime_type })
let link = document.createElement('a')
link.href = window.URL.createObjectURL(blob)
link.download = file.name
link.click()
})
}当我从服务器下载PHP Storm格式的文件时,文件是正常的。因此,上传过程运行良好。
但是我打不开下载的文件。
我发现了一些关于ob_clean的东西,但不理解解决方案。
发布于 2020-10-26 17:42:48
我试过了,它对我也不起作用,不要使用ajax或axios,用get-request发送你的请求,并在你的函数中返回下载响应:
return response()->download(public_path('uploads/TestWordFile.docx'));你不需要发送ajax请求。使用GET,当你返回一些响应时,页面不会被刷新!这对你来说应该是可行的
发布于 2020-10-26 17:14:14
尝试使用....
public function downloadFile(Request $request, File $file)
{
return Storage::disk('local')->download($file);
}https://stackoverflow.com/questions/64533728
复制相似问题