TP3.2、tp3.2 thinkphp3.2 ajax文件上传
2018-02-24 15:35
267 查看
注意:在linux要给上传文件的文件夹读写权限 这种写法也很好 var form=document.getElementById("form1"); var fd =new FormData(form); var attach_url = ''; var attach = ''; $.ajax({ url: "{:U('Task/upload')}", type: "POST", data: fd, async: false, processData: false, // 告诉jQuery不要去处理发送的数据 contentType: false, // 告诉jQuery不要去设置Content-Type请求头 success: function(r,status,xhr){ attach_url = r.data.url; attach = r.data.name; console.log(r); } });
一.html代码 (推荐这个) function uploads(){ //new对象处理文件上传表单提交 //‘#form1’是form的id,[0]是文件上传的下标, //我这里只有一个input type=file所以就是[0] //这个[0]指的是第一个文件上传表单,不包含普通的input表单 var data = new FormData($('#form')[0]); $.ajax({ url: "{:U('Article/upload')}",//文件地址 type: 'POST', cache: false,//关闭缓存 data: data, //processData 默认为false,当设置为true的时候, //jQuery ajax 提交的时候不会序列化 data,而是直接使用data //processData设置为false。因为data值是FormData对象,不需要对数据做处理。 processData: false, //contentType设置为false。因为是由<form>表单构造的FormData对象, //且已经声明了属性enctype="multipart/form-data",所以这里设置为false contentType: false, success:function(data){ $('#cover').val(data.file_url); alert(data.msg); } });
function uploads(id){ //new对象处理文件上传表单提交 //‘#form1’是form的id,[0]是文件上传的下标, //我这里只有一个input type=file所以就是[0] //这个[0]指的是第一个文件上传表单,不包含普通的input表单 var data = new FormData(); //第一个参数是input的ID可以自定义,第二个也是input的ID不是hiform的 data.append(id,$("#"+id)[0].files[0]); $.ajax({ url: "{:U('upload')}",//文件地址 type: 'POST', cache: false,//关闭缓存 data: data, //processData 默认为false,当设置为true的时候, //jQuery ajax 提交的时候不会序列化 data,而是直接使用data //processData设置为false。因为data值是FormData对象,不需要对数据做处理。 processData: false, //contentType设置为false。因为是由<form>表单构造的FormData对象, //且已经声明了属性enctype="multipart/form-data",所以这里设置为false contentType: false, success:function(r){ // var url=$('#fileURL').val(data.fileURL); console.log(r); alert(r.msg); } }); }
public function upload(){ if(IS_POST){ $file = $_FILES; foreach ($file as $k => $v) { //生成唯一的ID $filename = md5(uniqid(microtime(true),true)); if($file[$k]['error']==0){ $config=array( 'maxSize'=>70000000, 'exts'=>array('jpg','jpeg','png','gif'), 'rootPath'=>'./uploads/', //保存的文件名 'saveName' =>$filename, //开启子目录 'subName' =>array('date','Ymd'), ); $upload=new \Think\Upload($config); $info=$upload->upload(); if($info){ //域名 $ym='http://yun.zjwhtb.net'; //根目录 $rootPath=substr($config['rootPath'],1); //文件保存路径 $savepath=$info[$k]['savepath']; //文件名称 $savename=$info[$k]['savename']; $fileUrl = $ym.$rootPath.$savepath.$savename; $data['msg']='文件上传成功'; $data['fileUrl']=$fileUrl; // dump($data);die; $this->ajaxReturn($data); }else{ $data['msg']=$upload->getError(); // dump($data);die; $this->ajaxReturn($data); } }else{ $data['msg']='文件上传错误'; // dump($data);die; $this->ajaxReturn($data); } } }else{ $this->display(); } }
相关文章推荐
- php tp3.2 thinkphp3.2文件上传error错误代码-具体详情
- thinkPHP3.2简单实现文件上传的方法
- thinkphp3.2 文件上传
- Tp3.2上传多文件的问题
- Thinkphp3.2简单解决多文件上传只上传一张的问题
- thinkphp5 ajax图片文件异步上传
- thinkPHP3.2简单实现文件上传的方法
- thinkphp3.2使用七牛云上传和删除文件,
- TP5、thinkPHP5.0 ajax文件上传
- thinkphp3.2 =>0625-9_文件上传
- thinkphp3.2中的上传文件根目录设置
- ThinkPHP3.2 实现阿里云OSS上传文件
- ThinkPHP3.2 本地文件上传没问题 放到服务器上出错
- tp3.2整合uploadify上传实现,解决上传中文TP文件上传保存错误问题
- thinkphp3.2+bootstrap-inputfile多文件上传
- ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
- 关于thinkPHP3.2中 多文件上传文件被覆盖问题解决方案
- 关于tp3.2的非法文件上传
- TP3.2 thinkPHP3.2 phpexcel+TP框架导出
- ThinkPHP3.2——文件上传