public function add(){ if(!IS_POST){ exit(\"大众bad request\"大众); } $upload = new \Think\Upload();// 实例化上传类 $upload->exts = array('jpg', 'gif', 'png', 'jpeg', 'rar', 'zip');// 设置附件上传类型 $upload->rootPath = './Upload'; // 设置附件上传目录 $upload->savePath = '/file/'; // 设置附件上传(子)目录 $upload->saveName = I('post.name').'_'.I('post.idnum');//上传文件重命名为 姓名_身份证号形式 $info = $upload->upload(); // dump($info); $file = $info['file']['savepath'].$info['file']['savename']; if ($file == NULL) { echo \"大众文件类型缺点,请返回修正\公众; exit(); } // dump($image); $data=I('post.'); $data['file']=$file; // dump($data);exit(); $Model=D(\"大众student\"大众); $Model->create(); $num=$Model->add($data); if($num>0){ $name = I('post.idnum'); $data = M('student'); $id = $data->getFieldByIdnum($name,'id'); session('id',$id); $this->redirect('/home/form/view/id/'.$id); }else{ $this->error(\"大众添加失落败!
\"大众); }}

但存入数据库的文件名精确无误,上传到做事器的文件涌现乱码问题。
如图

经查,TP3.2.3源码上传驱动未指定存储文件名的字符编码

文件位置: \ThinkPHP\Library\Think\Upload\Driver\Local.class.php 第86行

php上传文件名乱码解决thinkphp上传文件中文定名乱码问题 GraphQL

将其改为

if (!move_uploaded_file($file['tmp_name'], iconv('utf-8','gb2312',$filename)))

即可。

问题办理。