我正在尝试将文件上传到AWS s3存储桶
public function fileTest(Request $request)
{
//this will create folder test inside my bucket and put the contents
$request->file->store('test','s3');
}
但是上面的代码会在我的存储桶中创建一个名为test
的文件夹并将文件放入其中。
但我想直接上传到存储桶
$request->file->store('s3');
我已经尝试了上面的代码但是没有用。
答案 0 :(得分:2)
public function uploadFile (Request $request) {
$file = $request->file('file');
$imageName = 'uploads/' . $file->getClientOriginalName();
Storage::disk('s3')->put($imageName, file_get_contents($file));
Storage::disk('s3')->setVisibility($imageName, 'public');
$url = Storage::disk('s3')->url($imageName);
return Response::json(['success' => true, 'response' => $url]);
}
答案 1 :(得分:1)
通过以下
解决了我的问题 $s3 = Storage::disk('s3');
$s3->put('',$request->file);
<强>速记强>
Storage::disk('s3')->put('',$request->file)
答案 2 :(得分:0)
将文件放在s3服务器上
$agreement_contract_copy = $request->file('agreement_contract');
$filename = $id. '/agreement' . '_' . time() . '.pdf';
$student->agreement_copy = $filename;
$student->save();
Storage::disk('s3')->put($filename, file_get_contents($agreement_copy));
如果不能将其定义为public,则默认将其存储为private,并且当您使用private方法时,在文件获取时间中,请使用temp方法,如下所示。 获取文件
Storage::disk('s3')->temporaryUrl
($student->agreement_copy, \Carbon\Carbon::now()->addMinutes(5))
$ student-> agreement_copy
经过测试
答案 3 :(得分:0)
在很短的解决方案中。
Storage::disk('s3')->put("destination_path", file_get_contents("BinaryResourse"));