我已经和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图像。 谁能告诉我为什么? 提前致谢! 克里斯
答案 0 :(得分:0)
您可能想尝试一下:
$filesystem->put('test.jpg', \File::get($file->getRealPath());
put
的第二个参数是将写入文件的内容,因此请确保传递实际内容而不是文件对象。
答案 1 :(得分:0)
修正了问题!它与Laravel无关。将upload_max_filesize
和post_max_size
更改为足够大的值(50M)。通过执行sudo pkill php5-fpm
销毁所有php5-fpm会话,然后通过执行service php5-fpm start
启动php5-fpm服务。然后一切正常,文件上传到/tmp
。