zoukankan      html  css  js  c++  java
  • thinkphp3.2.3使用formdata的多文件上传

    使用formdata的多文件上传  废话少说 直接上代码

    1 JS部分

    //选择文件后的处理
     function handleFileSelect()
     {
         var exerciseid=$("#exerciseid").val();
         var workerid=$("#workerid").val();
         var pic_kind=$("#pic_kind").val();
         //var pic_file = $('#pic_file')[0].files[0];
         
         var formData = new FormData();
    
        //formData.append("pic_file",$('#pic_file')[0].files[0]);
       
       var filesize=$('#pic_file')[0].files.size;
       
        alert(filesize);
        
        for(var i=0; i<$('#pic_file')[0].files.length;i++){
            alert($('#pic_file')[0].files[i].size);
            formData.append('file[]', $('#pic_file')[0].files[i]);
        }
        
        formData.append("pic_kind", pic_kind);
        formData.append("exerciseid", exerciseid);
        formData.append("workerid", workerid);
         
         $.ajax({
             url: "{:U('Publishset/newUpload')}",
             dataType:'json',
             type:'POST',
             data: formData,
             processData : false, // 使数据不做处理
             contentType : false, // 不要设置Content-Type请求头
             xhr: function(){ //获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数
                 myXhr = $.ajaxSettings.xhr();
                 if(myXhr.upload){ //检查upload属性是否存在
                     //绑定progress事件的回调函数
                     myXhr.upload.addEventListener('progress',aprogressHandlingFunction, false);
                 }
                 return myXhr; //xhr对象返回给jQuery使用
             },
             success: function(data){
                  
                 $('#ap').val(0);
                 $('#aprogress').html('');
                 
                 showExerciseImage(exerciseid);
                 //if (data) {
                    
                   //  alert('上传成功!');
                 //}
    
             },
             error:function(response){
                 console.log(response);
             }
         });
    
     }
     
    
     //上传进度回调函数:
     function aprogressHandlingFunction(e) {
         if (e.lengthComputable) {
             $('#ap').attr({value : e.loaded, max : e.total}); //更新数据到进度条
             var percent = e.loaded/e.total*100;
             $('#aprogress').html(percent.toFixed(2) + "%");
         }
     }
     

    2 html 部分

     <input class="file" id="pic_file" multiple type="file" onchange="handleFileSelect(event)" style="display:none;">

    3 PHP部分

     public function newUpload()
      {
      
      
          //上传配置
          $upload = new ThinkUpload();// 实例化上传类
          $upload->maxSize=3145728 ;// 设置附件上传大小
          $upload->exts=array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
          $upload->rootPath='./uploads/inittestimg/'; // 设置附件上传根目录
      
          $upload->savePath=''; // 设置附件上传(子)目录
          
          //上传文件
          $info=$upload->upload();
       
          //参数获取
          $exerciseid=$_POST["exerciseid"];
          $kind=$_POST['pic_kind'];
        $workerid=$_POST['workerid'];
          
       
           
          if(!$info) {// 上传错误提示错误信息
              $this->error($upload->getError());
        }else{// 上传成功 获取上传文件信息
            
            $images = M('initimages');
            
            //循环入库
              foreach($info as $file){
                  $imgarr['exerciseid']=$exerciseid;
                  $imgarr['src']='./uploads/inittestimg/'.$file['savepath'].$file['savename'];
                  $imgarr['kind']=$kind;
                  $imgarr['lastreadtime']=time();
     
                  //文件名
                  //$imgarr['orderid']=str_replace(strrchr($info['pic_file']['name'], "."),"",$info['pic_file']['name']);
                  $imgarr['orderid']=$file['name'];
     
                  $images->add($imgarr);
              }
                       
          }
       
          echo 1;
      }
       
  • 相关阅读:
    求解答可用性测试记
    Teambition可用性测试记
    海丁网可用性测试记
    go语言的切片
    go语言的数组
    go语言的函数
    go语言的接口
    go语言的结构体
    go语言的flag
    创建二叉树和三种遍历
  • 原文地址:https://www.cnblogs.com/baker95935/p/11321632.html
Copyright © 2011-2022 走看看