我正在尝试将多个图像上传到我的服务器,但它无法正常工作。它给我状态代码200,但它不会上传图像。
这就是我的所作所为:
if($request->hasFile('post_image')){
$images = $request->post_image;
$i = 0;
foreach($images as $image){
$i++;
$filename = $post->id.'.'.$i.'jpg';
$location = '/var/www/site/html/'.$post->id;
$image->move($location, $filename);
}
}
如果我删除foreach()
,则上传图片但只上传一张。
为什么不上传它们?我做错了什么?
修改
这里也回答我自己的问题。问题是我的密钥" post_image
"必须是" post_image[]
"代替。
答案 0 :(得分:0)
您忘记在文件名中添加{jpg'扩展名之前的.
:
应该是这样的:
$filename = $post->id.'.'.$i.'.jpg';
答案 1 :(得分:0)
我正在尝试上传多张图片:
if(!empty(Input::file('image'))){
$files= Input::file('image');
$destinationPath= 'images';
$images=array();
foreach($files as $file){
$fullname= $file->getClientOriginalName();
$hashname = $fullname;
$upload_success =$file->move($destinationPath, $hashname);
$images[]=$fullname;
$has= implode(",",$images);
}
$categories = new CategoryType;
$categories->name = Input::get('name');
$categories->image_attachment = $has;
$categories->save();
}
答案 2 :(得分:0)
按照这个文件,您可以循环播放所有上传的文件
Get all files in a foreach loop in Laravel
喜欢$images = Input::file('post_image');
答案 3 :(得分:0)
问题在于我的密钥" post_image
"必须是" post_image[]
"代替。
答案 4 :(得分:0)
$file_ary = array();
$file_count = count($request->file('image') );
$a=($request->file('image'));
$finalArray=array();
for ($i=0; $i<$file_count; $i++) {
$fileName = time().$a[$i]->getClientOriginalName();
$destinationPath = $request->input('path') ;
$finalArray[$i]['image']=$destinationPath.$fileName;
$a[$i]->move($destinationPath,$fileName);
}
return json_encode($finalArray);