首页 > Web开发 > 详细

JQuery AJAX + PHP 上传多个附件到服务器

时间:2020-03-03 11:02:40      阅读:77      评论:0      收藏:0      [点我收藏+]

 

1. 创建一个表单,添加两个附件框

<form id="newtopic"  >

 
    <input type="file" name="att1" >
    <br />
    <input type="file" name="att2" >
    <br />
   <button id="submitBtn" >Submit 提交</button>
</form>

 

2.  为按钮创建AJAX单击事件,执行后表单中的附件会上传到服务器的全局变量$_FILES中

$(‘#submitBtn‘).click(function(){

      //获取表单数据
      var formdata=new FormData($("#newtopic")[0]);

        $.ajax({
          //请求方式
          type:‘POST‘,
          url:"{:url(‘topic/issuerUploadFile‘)}",
          data:formdata,
          //接收服务器返回的数据类型
          dataType:"text",
          //禁止ajax设置编码方式
          processData: false,
          //禁止ajax将数据类型转换为字符串
          contentType: false,
          success:function(response,status,xhr){
             alert(response);
          },
          error:function(xhr,errorStatus,errorType){
            alert(xhr.status+":  "+ errorType);
          }
       });
 
3. 在控制器Topic.php文件中添加方法
    
public function issuerUploadFile()
    {
      //print_r($_FILES);
      $info="no_file_uploaded";
      $myDir=‘topic_issuer‘. DS . ‘TPC2020-000003‘;
      $filePath=ROOT_PATH . ‘public‘ . DS . ‘uploads‘;
      $filePath = $filePath . DS . $myDir ;
     
      //检查路径是否存在,如果不存在则创建文件夹
      if(!is_dir($filePath))
      {
        //创建文件夹
        $res=mkdir(iconv("UTF-8", "GBK", $filePath));
        if (!$res)
        {
          $info = "目录创建失败 Create directory failed";
          goto  exit_line;
        }
     }
        $i =0; //用于记录上传的附件数
        //通过foreach循环查看上传的附件信息
       foreach ($_FILES as $fileInfo)
       {
          //无错误时上传文件
          // if ($fileInfo["error"]>0)
          // // {
          // //    $info="error:" . $fileInfo["error"];
          // // }
          // // else
          if ($fileInfo["error"]==0)
          {
             $fileName=$fileInfo["name"];
             $filePathName=$filePath . DS . $fileName;
             move_uploaded_file($fileInfo["tmp_name"], $filePath . DS . $fileInfo["name"]);
             $i++;
             $info +=$i . " uploaded:" . $fileName . "<br />";
          }    
      }
     
        exit_line:
        return $info;
    }
   
 
 
 

JQuery AJAX + PHP 上传多个附件到服务器

原文:https://www.cnblogs.com/3xin/p/12400520.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!