首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Vue/Laravel下载.docx文档

如何使用Vue/Laravel下载.docx文档
EN

Stack Overflow用户
提问于 2020-10-26 16:33:30
回答 2查看 443关注 0票数 0

我使用带有Laravel API的Vue。我创建了一个fileManger。PDF文件可以很好地下载。但.docx文件在下载后会损坏。

控制器

代码语言:javascript
复制
    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

代码语言:javascript
复制
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的东西,但不理解解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-26 17:42:48

我试过了,它对我也不起作用,不要使用ajax或axios,用get-request发送你的请求,并在你的函数中返回下载响应:

代码语言:javascript
复制
return response()->download(public_path('uploads/TestWordFile.docx'));

你不需要发送ajax请求。使用GET,当你返回一些响应时,页面不会被刷新!这对你来说应该是可行的

票数 1
EN

Stack Overflow用户

发布于 2020-10-26 17:14:14

尝试使用....

代码语言:javascript
复制
public function downloadFile(Request $request, File $file)
{
    return Storage::disk('local')->download($file);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64533728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档