解决ThinkPHP表单多文件上传时出现的不对应问题
Time:2014/08/05 23:19:21 Click:
ThinkPHP是一个了不起的框架,这点不可置否,不过在用他的多文件上传时,却出现了一些问题,什么问题呢?那就是当一个表单里有几个不同名的文件上传时,当修改时,如果其中一个不上传,就会乱,这是很不好的,于是就自己写了一个方法,请往下看。
isset($_POST['id']) ? $id = $_POST['id'] : $this->error('非法操作'); $pic1 = M('article')->where(array('id'=>$id))->getField('pic1');//获取原文件 $pic2 = M('article')->where(array('id'=>$id))->getField('pic2');//获取原文件 $pic3 = M('article')->where(array('id'=>$id))->getField('pic3');//获取原文件 $info = $upload->getUploadFileInfo();//获取上传信息集合 foreach ($info as $key => $value) { switch ($value['key']) { case 'pic1': $pic1=$value['savename']; break; case 'pic2': $pic2=$value['savename']; break; case 'pic3': $pic3=$value['savename']; break; } }
现在来解释一下,原理是通过获取到的$info进行$key值进行循环对比。当$info里有值与表单值一样时,即进行上传,同时,将原文件名进行重写,达到更新目的。这样就达到了当所有上传文件没有同时上传时,不出现上传对应问题,希望对大家有用,如有疑问,欢迎联系我们。
上一篇:ThinkPHP 邮件处理类详解