【问题标题】:Store blob as a file in S3 with Laravel使用 Laravel 将 blob 作为文件存储在 S3 中
【发布时间】:2020-01-03 14:52:48
【问题描述】:

我在 Vue 中使用文件上传插件通过 API 上传一些图像和 pdf 文件,并且在上传文件时可以选择 create a blob field

发送给 Laravel 的请求如下。我可以通过在浏览器上复制和粘贴 URL 从浏览器访问 Blob。

在服务器端代码上,我尝试使用以下代码保存文件,但保存的文件是一些损坏的 64 字节文件,而不是实际图像。我们如何将 blob 作为普通文件存储在文件系统中?

if ($request->has('files')) {
        $files = $request->get('files');

        $urls = [];
        foreach ($files as $file) {
            $filename = 'files/' . $file['name'];

            // Upload File to s3
            Storage::disk('s3')->put($filename, $file['blob']);
            Storage::disk('s3')->setVisibility($filename, 'public');

            $url = Storage::disk('s3')->url($filename);
            $urls[] = $url;
        }

        return response()->json(['urls' => $urls]);
    }

【问题讨论】:

    标签: php laravel vue.js blob


    【解决方案1】:

    尝试替换这个:

    Storage::disk('s3')->put($filename, $file['blob']);
    

    用这个:

    Storage::disk('s3')->put($filename, base64_decode($file['blob']));
    

    【讨论】:

    • 不幸的是还是同样的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2021-05-11
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2022-10-17
    相关资源
    最近更新 更多