拉拉维尔 4 - 文件上传
2022-08-30 19:08:02
我有一个表格,其中有其他信息,用户将上传图像。我想将图像的路径存储在数据库上,并将图像保存到服务器上的文件夹中。public/img/
该表单是使用:打开的,以便它能够POST文件。检查HTML,我有一个folowing:{{ Form::open(['route'=>'pizzas.store', 'files'=>true]) }}
<form method="POST" action="http://mypizza/pizzas"
accept-charset="UTF-8" enctype="multipart/form-data">
我可以开机自检到我的控制器,并按预期从表格接收所有数据。处理该文件的方法如下:
public function store() {
//TODO - Validation
$destinationPath = '';
$filename = '';
if (Input::hasFile('image')) {
$file = Input::file('image');
$destinationPath = '/img/';
$filename = str_random(6) . '_' . $file->getClientOriginalName();
$uploadSuccess = $file->move($destinationPath, $filename);
}
$pizza = Pizza::create(['name' => Input::get('name'),
'price' => Input::get('price'),
'ingredients' => Input::get('ingredients'),
'active' => Input::get('active'),
'path' => $destinationPath . $filename]);
if ($pizza) {
return Redirect::route('pizzas.show', $pizza->id);
}
//TODO - else
}
当我选择“文件”并提交表单时,除了文件夹中没有保存任何文件之外,所有内容似乎都正常工作。数据库正确注册文件路径和名称。/img
在块之后运行,我得到以下内容:dd($uploadSuccess);
if { ...}
object(Symfony\Component\HttpFoundation\File\File)#220 (2) {
["pathName":"SplFileInfo":private]=> string(17) "/img\YZmLw7_2.jpg"
["fileName":"SplFileInfo":private]=> string(12) "YZmLw7_2.jpg" }
我做错了什么?