我在 Vue 中使用文件上传插件通过 API 上传一些图像和 pdf 文件,并且它可以选择在上传文件时创建一个 blob 字段。
发送给 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]);
}
