【问题标题】:Laravel image uploads to s3 is 0kb?Laravel 图片上传到 s3 是 0kb?
【发布时间】:2016-10-07 00:42:57
【问题描述】:

我正在尝试通过 laravel 应用将图像上传到 S3。

public function createFeature($id, Request $request)
{
    $refererURL = explode('/', URL::previous());
    $refererID = $refererURL[6];

    if ($refererID !== $id) {
        return redirect()->back();
    }

    $file = $request->file('feature_image');

    if ($file === null) {
        return redirect()->back();
    }

    if (!$this->isAllowedFile($file)) {
        return redirect()->back();
    }

    $name = str_random(255) . '-feature-' . '.' . $file->getClientOriginalExtension();

    Storage::disk('s3')->put($this->buildFilePath($name, $id), file_get_contents($file->getRealPath()));

    // Store in a database
    Media::create([
        'deal_id' => $id,
        'key' => 'feature',
        'value' => $name,
        'original' => $file->getClientOriginalName()
    ]);

    return redirect()->back();

}

问题是,有时有效,有时无效。我的意思是 AWS S3 控制台中的图像对象是 0 kb

当我打开图像时它只是空白。

我正在使用这个包: "league/flysystem-aws-s3-v3": "^1.0",

为了获得更多解决问题的信息,我所做的是启用日志记录。我刚刚启用了日志记录,所以我还没有得到任何东西。

感谢您抽出宝贵时间提供帮助。

【问题讨论】:

    标签: php image amazon-s3 upload laravel-5.2


    【解决方案1】:

    首先你需要在 composer.json 中添加这两个包并更新 composer

     "aws/aws-sdk-php-laravel": "~3.0",
    "league/flysystem-aws-s3-v3": "^1.0",
    

    我也在使用相同的包,它在我的工作正常

    $extension = $file->getClientOriginalExtension();
    $imageName = rand(11111, 99999) . '.' . $extension; // rename image
    $key =  Auth::user()->id."/". $imageName;
    Storage::disk('s3')->put($key, file_get_contents($file));
    

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 2019-05-07
      • 2018-09-12
      • 2015-08-24
      • 1970-01-01
      • 2015-07-14
      • 2020-04-29
      • 2018-06-11
      • 1970-01-01
      相关资源
      最近更新 更多