laravel - 如何通过 laravel 中的代码也将文件的扩展名发送到 gcloud 应用存储桶?
问题描述
我通过在 laravel 中的编码将我的图片存储在 gcloud app 存储桶中,它正在工作。
但我想用相同的名称保存它们,因为我用它们的扩展名将它们保存在数据库中,这样我就可以轻松地检索它们。
图像以他们自动创建的名称保存在 GCS 存储桶中,没有扩展名。
这是我的代码:
public function store(Request $request)
{
if ($request->hasFile('image')) {
$imageName = time().'.'.$request->image->extension();
$photo = $request->image->storeAs('ufurnitures-img', $imageName, 'public');
}
// Save the data into GCS
$extension = $request->image->getClientOriginalExtension();
$storage = new StorageClient([
'projectId' => 'ufurnitures'
]);
$bucket = $storage->bucket('ufurnitures-img');
$bucket->upload(
//fopen($request->image.'.'.$extension, 'r') //This one is not working
fopen($request->image, 'r') //This one is working
);
// Save the data into database
Product::create([
'name' => $request->name,
'price' => $request->price,
'description' => $request->description,
'image' => $photo
]);
$request->session()->flash('msg','Your product has been added');
return redirect()->back();
}
解决方案
您可以在上传 blob 时指定选项。
$options = [
'name' => '/path/to/file.extension',
];
$bucket->upload(
//fopen($request->image.'.'.$extension, 'r') //This one is not working
fopen($request->image, 'r'), //This one is working
$options
);
推荐阅读
- python - 尝试使用 Python 中的代码之前给出的已定义名称编写文件时出现路径问题
- reactjs - 使用自定义组件向 Material-UI 按钮添加变体会导致打字稿错误
- image-processing - RGB 与灰度的图像归一化
- python - TypeError: 不支持的操作数类型 //: 'range' 和 'int' (需要下面给出的输出)
- java - 当有2个相同类型时如何@MockBean?
- firebase - 静态 html/css 博客作为 Firestore 后端 SEO 优化
- c# - 带有可为空字符串的条件的 Linq 左连接
- csv - 如何在 Google 表格中拆分此日期戳
- python-3.x - 我试图做一个 if 语句来改变一个变量。我
- javascript - NextJS 和 Strapi:使用一个 getStaticPaths() 函数获取多个 API 页面