如何通过laravel中的代码将文件的扩展名也发送到gcloud应用程序存储桶



我通过laravel中的编码将我的图片存储在gcloud应用程序存储桶中,它正在工作。

但我想用与我在DB中保存的名称相同的名称保存它们,并使用它们的扩展名,这样我就可以轻松地检索它们。

图像保存在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
);

最新更新