thinkphp3.2.3上传多个图片并将传到同一个数据表的三个字段

onezero
  • 10

想在一个表单中同时上传三个图片,并且上传到数据表中的三个字段,分别为preview1,preview2,preview3,但是现在只实现了上传一个图片,想请各位大佬帮忙看下应该怎么修改。
1.前端页面
clipboard.png
2.后端代码

clipboard.png

3.数据库表

clipboard.png

回复
阅读 4.7k
8 个回答

是不是你前端input中没有multiple属性啊

我建议你写成异步上传的形式,然后弄三个隐藏的input,把上传的图片地址组合好分别放入到三个input里面。

现在异步上传图片也很方便,不像以前老费劲了。


如果实在不会异步,那你后端处理的时候就要是用循环来,一个一个进行上传,然后再组合地址,提交到数据库。

为什么不用异步多图上传?好用不说,还省心。

micro_hx1
  • 4
新手上路,请多包涵

我也相似的问题不

多附件 input <input type='file' name='photo[]'>
或者做成隐藏域 异步上传

这个方法应该是单图上传的,你得<input type='file' name='photo[]'>,foreach $_POST['file']调用你的这个方法,应该就可以了。

给 input 添加 multiple 属性,如:

<input type="file" name="preview" multiple="multiple" />

后端的这个 $image->upload() 是可以返回一个数组的,因此,你没必要用现在的 if-else 语法,我觉得这样可以:

// 配置略
$images = $imgUpload->upload();

// 是否上传成功
if(!images){
    $this->error(); // 其已含 exit;
}

// 处理数据
foreach($images as $image) {
    image['path'] = $imgUpload->savePath. $image['savename']
}
宣传栏