【发布时间】:2018-07-24 18:43:30
【问题描述】:
我正在使用 Laravel 5.4.*。我在帮助文件中有这个简单的代码,用于在名为“instant_gifs/”的文件夹下的 S3 存储桶中上传图像/gif。代码如下:
if ( !function_exists('uploadFile') ) {
function uploadFile($fileContent, $fileName, $size='full', $disk='s3')
{
$rv = '';
if( empty($fileContent) ) {
return $rv;
}
if($size == 'full') {
dump($fileName);
$path = Storage::disk($disk)->put(
$fileName,
$fileContent,
'public'
);
}
if ( $path ) {
$rv = $fileName;
}
return $rv;
}
}
从控制器中,我调用辅助方法如下:
$file = $request->gif;
$file_name = 'instant_gifs/' . $user_id . '_' . time() . '_' . $file->getClientOriginalName();
$result = uploadFile($file, $file_name);
在 helper 方法的 $fileName 参数中,我以这种格式提供文件名,例如:
“instant_gifs/83_1518596022_giphy.gif”
但上传后,我看到文件存储在此文件夹下
“vvstorage/instant_gifs/83_1518596022_giphy.gif/CRm1o1YEcvX3fAulDeDfwT7DIMCxOKG8WFGcA3lB.gif”
随机文件名
CRm1o1YEcvX3fAulDeDfwT7DIMCxOKG8WFGcA3lB.gif
然而,根据代码,它应该存储在这个路径中:
“vvstorage/instant_gifs/83_1518596022_giphy.gif”
没有得到任何解释为什么会发生这种情况。任何线索将不胜感激。
BucketName = vvstorage
我正在模仿的文件夹 = instant_gifs
【问题讨论】:
-
检查这个以获得更好的解决方案:: stackoverflow.com/questions/56105104/…
标签: php laravel laravel-5 amazon-s3 file-upload