Laravel 5表格上传直接到S3 Bucket无法正常工作

时间:2015-03-05 14:25:18

标签: php forms laravel amazon-s3 laravel-5

我已经和Laravel 5一起玩了大约一个星期并且很喜欢它,但是我不能为我的生活让它发挥作用。 我有一个简单的页面,可以将图像上传到我的S3存储桶。

{!! Form::open(['post' => '/dash/profile/avatar/', 'files' => true]) !!}
        <div class="form-group">
            {!! Form::file('avatar') !!}
        </div>
        <div class="form-group">
            {!! Form::submit('Upload', ['class' => 'form-control button']) !!}
        </div>
{!! Form::close() !!}

适用的路线

Route::get('/dash/profile/avatar', 'ProfileController@updateAvatar');

Route::post('/dash/profile/avatar/', 'ProfileController@uploadAvatar');

我上传的ProfileController方法

public function uploadAvatar(Filesystem $filesystem, Request $request)
    {
        if (Auth::check())
        {
            $filename = $request->file('avatar')->getFilename();
            $file = $request->file('avatar');
            $filesystem->put('test.jpg', $file);
            return redirect('dash/profile')->with(['flash_message' => 'Your Avatar has been successfully updated!']);
        } else {
            return redirect('auth/login');
        }
    }

我进入S3存储桶的所有内容都是一个名为'test.jpg'的文件,但它只是几个字节,而不是我试图上传的~500KB图像。 谁能告诉我为什么? 提前致谢! 克里斯

2 个答案:

答案 0 :(得分:0)

您可能想尝试一下:

$filesystem->put('test.jpg', \File::get($file->getRealPath());

put的第二个参数是将写入文件的内容,因此请确保传递实际内容而不是文件对象。

答案 1 :(得分:0)

修正了问题!它与Laravel无关。将upload_max_filesizepost_max_size更改为足够大的值(50M)。通过执行sudo pkill php5-fpm销毁所有php5-fpm会话,然后通过执行service php5-fpm start启动php5-fpm服务。然后一切正常,文件上传到/tmp