【发布时间】:2017-07-16 22:13:57
【问题描述】:
我尝试通过在控制器中执行此操作在数据库中上传多个图像:
公共函数存储(request $request) {
$pictures=[];
$input=$request->all();
if($file=$request->file('images')) $pictures[]=$request->file('images');
if($file=$request->file('image1')) $pictures[]=$request->file('image1');
if($file=$request->file('image2')) $pictures[]=$request->file('image2');
if($file=$request->file('image3')) $pictures[]=$request->file('image3');
if($file=$request->file('image4')) $pictures[]=$request->file('image4');
if($file=$request->file('image5')) $pictures[]=$request->file('image5');
if($file=$request->file('image6')) $pictures[]=$request->file('image6');
foreach($pictures as $file)
for($name=0;$name<=7;$name++)
{
$name=$file->getClientOriginalName();
}
$file->move('image',$name);
$input['images']=$name;
$input['image1']=$name;
$input['image2']=$name;
$input['image3']=$name;
$input['image4']=$name;
$input['image5']=$name;
$input['image6']=$name;
Detail::create($input);
return redirect('/');
}
它采用图像形式并将所选图像存储在 public/image 文件夹中,但在数据库中存储具有相同图像名称的所有图像。并且在显示的同时它也会多次显示相同的图像。
我知道这里的人对此有解决方案,并且可能有更好的主意。所以请帮我解决这个问题。提前致谢。
上述完成的方法不适合我,所以我在我的控制器中这样做了
public function uploadSubmit(request $request)
{
// Coming soon...
$data=$request->all();
$imagename =[];
$i = 0;
$files =Input::file('images');
foreach($files as $file){
$extension = $file->getClientOriginalExtension();
$imagename[$i] = 'post'.str_random(10).'.jpg';
$destinationPath = 'assets/posts';
$file->move($destinationPath, $imagename[$i]);
$i++;
}
Detail::create($files);
return redirect('/');
}
在路线中:
Route::resource('/details','DetailController');
现在我收到这样的错误:DetailController.php 第 43 行中的 FatalThrowableError: 调用数组上的成员函数 getClientOriginalName()。 任何人都可以在这里指出问题。谢谢。
【问题讨论】:
-
你为哪个版本的 Laravel 做这个?将有助于提供适当的请求示例。您将使用相同的名称将所有图像作为数组发送到 PHP。您是通过标准表单还是 javascript 发布到 PHP?
-
我使用的是 laravel 5.4.12。