【问题标题】:Laravel Vapor Unable to Download DOCX or XLSX file typesLaravel Vapor 无法下载 DOCX 或 XLSX 文件类型
【发布时间】:2021-10-03 09:45:42
【问题描述】:

我正在使用 Laravel vapor 托管我的应用程序,但在从 AWS S3 下载某些文件类型时遇到问题。我想知道这是否是请求标头不允许这些文件类型的 CloundFront 问题。由于我能够很好地下载 PNG、JPG、PDF 文件,我只是遇到了 DOCX 和 XLSX 等文件的问题。在我的 API 中,我只是使用 Storage 门面来流式传输下载。

    /**
     * Download file from storage
     * @param Document $document
     * @return StreamedResponse
     */
    public function download(Document $document): StreamedResponse
    {
        return Storage::disk('s3')->download($document->path);
    }

这是我认为已设置的请求标头

accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

这是抛出的错误

【问题讨论】:

    标签: laravel amazon-web-services aws-lambda laravel-vapor


    【解决方案1】:

    能够通过建立一个指向 S3 存储中的项目的临时链接来解决问题,然后重定向到初始化下载。

        public function download(Document $document): RedirectResponse
        {
            $url = Storage::temporaryUrl(
                $document->path
                now()->addMinutes(30)
            );
    
            return Redirect::away($url);
        }
    

    来自 Vapor Docs 的参考资料:https://docs.vapor.build/1.0/projects/development.html#binary-responses

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 2019-05-25
      • 1970-01-01
      • 2022-10-07
      相关资源
      最近更新 更多