尝试上传图片库时出现 getClientOriginalName() 错误
getClientOriginalName() error while trying to upload image gallery
我目前正在学习 laravel,但一直无法将图片库和 header 图片上传到特定文件夹。这是我的控制器代码:(我在 "edit" 页面上传图片)
public function update(Request $request, $id)
{
$findObject = Accommodation::find($id);
$findObject->update($request->all());
Gallery::destroy('objects_id', $id);
foreach ($request['img'] as $img) {
$gallery = new Gallery();
$gallery->objects_id=$id;
$gallery->img=$img;
$gallery->save();
$file[0] = $request->file;
$name = time() . $file[0]->getClientOriginalName(); // prepend the time (integer) to the original file name
$file[0]->move('uploads', $name); // move it to the 'uploads' directory (public/uploads)
// // create instance of Intervention Image
$img = Image::make('uploads/'.$name)->resize(300,200);
$img->save(public_path().'/uploads/'.$name);
}
这是我上传画廊和header图片的观点:
<div class="form-group">
<label for="exampleInputFile">Index image:</label>
<input type="file" name="headerImage" value="{{$object->headerImage}}">
<img src="{{asset('FrontAssets/img/smjestaj/')}}/{{$object->headerImage}}" style="width: 100px;">
<p class="help-block">Image that will be displayed on index page.</p>
<div class="form-group">
<label for="exampleInputFile">Image gallery</label>
<input type="file" name="img[]" multiple>
<p class="help-block">Choose x images for that will be displayed on gallery page.</p>
它向我显示此错误:
Call to a member function getClientOriginalName() on null
注意:我的表格中有 "enctype="multipart/form-data"。
This is what I get when i do dd();
我希望我正确描述了我的问题,如果我需要添加任何其他内容,请告诉我。提前致谢!
根据你的html
<input type="file" name="headerImage" value="{{$object->headerImage}}">
和
<input type="file" name="img[]" multiple>
尝试改变
来自
foreach ($request['img'] as $img) {
$gallery = new Gallery();
$gallery->objects_id=$id;
$gallery->img=$img;
$gallery->save();
$file[0] = $request->file;
$name = time() . $file[0]->getClientOriginalName(); // prepend the time (integer) to the original file name
$file[0]->move('uploads', $name); // move it to the 'uploads' directory (public/uploads)
// // create instance of Intervention Image
$img = Image::make('uploads/'.$name)->resize(300,200);
$img->save(public_path().'/uploads/'.$name);
}
到
if($request->file('img'))
{
foreach ($request->file('img') as $key => $file) {
$gallery = new Gallery();
$gallery->objects_id=$id;
$gallery->img=$file;
$gallery->save();
$name = time() . $file->getClientOriginalName();
$destination = base_path() . '/public/uploads';
$file->move($destination, $name);
}
}
if($request->file('headerImage'))
{
$name = time() . $request->file('headerImage')->getClientOriginalName();
$destination = base_path() . '/public/uploads';
$request->file('headerImage')->move($destination, $name);
}
我目前正在学习 laravel,但一直无法将图片库和 header 图片上传到特定文件夹。这是我的控制器代码:(我在 "edit" 页面上传图片)
public function update(Request $request, $id)
{
$findObject = Accommodation::find($id);
$findObject->update($request->all());
Gallery::destroy('objects_id', $id);
foreach ($request['img'] as $img) {
$gallery = new Gallery();
$gallery->objects_id=$id;
$gallery->img=$img;
$gallery->save();
$file[0] = $request->file;
$name = time() . $file[0]->getClientOriginalName(); // prepend the time (integer) to the original file name
$file[0]->move('uploads', $name); // move it to the 'uploads' directory (public/uploads)
// // create instance of Intervention Image
$img = Image::make('uploads/'.$name)->resize(300,200);
$img->save(public_path().'/uploads/'.$name);
}
这是我上传画廊和header图片的观点:
<div class="form-group">
<label for="exampleInputFile">Index image:</label>
<input type="file" name="headerImage" value="{{$object->headerImage}}">
<img src="{{asset('FrontAssets/img/smjestaj/')}}/{{$object->headerImage}}" style="width: 100px;">
<p class="help-block">Image that will be displayed on index page.</p>
<div class="form-group">
<label for="exampleInputFile">Image gallery</label>
<input type="file" name="img[]" multiple>
<p class="help-block">Choose x images for that will be displayed on gallery page.</p>
它向我显示此错误:
Call to a member function getClientOriginalName() on null
注意:我的表格中有 "enctype="multipart/form-data"。
This is what I get when i do dd();
我希望我正确描述了我的问题,如果我需要添加任何其他内容,请告诉我。提前致谢!
根据你的html
<input type="file" name="headerImage" value="{{$object->headerImage}}">
和
<input type="file" name="img[]" multiple>
尝试改变
来自
foreach ($request['img'] as $img) {
$gallery = new Gallery();
$gallery->objects_id=$id;
$gallery->img=$img;
$gallery->save();
$file[0] = $request->file;
$name = time() . $file[0]->getClientOriginalName(); // prepend the time (integer) to the original file name
$file[0]->move('uploads', $name); // move it to the 'uploads' directory (public/uploads)
// // create instance of Intervention Image
$img = Image::make('uploads/'.$name)->resize(300,200);
$img->save(public_path().'/uploads/'.$name);
}
到
if($request->file('img'))
{
foreach ($request->file('img') as $key => $file) {
$gallery = new Gallery();
$gallery->objects_id=$id;
$gallery->img=$file;
$gallery->save();
$name = time() . $file->getClientOriginalName();
$destination = base_path() . '/public/uploads';
$file->move($destination, $name);
}
}
if($request->file('headerImage'))
{
$name = time() . $request->file('headerImage')->getClientOriginalName();
$destination = base_path() . '/public/uploads';
$request->file('headerImage')->move($destination, $name);
}