• ajax上传


    使用FormData,进行Ajax请求并上传文件;具体代码如下: 

    html代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="./jquery-1.11.0.min.js" ></script>
    <title>测试</title>
    </head>
    <body>

    <button id="uploadAll">上传</button> <br><br>
    <form id= "uploadForm">
    <input type="file" name="uploadData" style="display:none" id="uploadimg" onchange="uploadFile()" /> <br>
    <input type="hidden" name="data-id" style="display:none" id="offerid" value="" /> <br>
    </form>

    </body>
    </html>

    js代码:

    <script>

    $("#uploadAll").on("click", function(){
    // alert("上传");
    $("#uploadimg").click();
    });
    function uploadFile()
    {
    var formData = new FormData($( "#uploadForm" )[0]);
    $.ajax({
    url: "./uploadAll.php",
    type: 'POST',
    data: formData,
    async: false,
    cache: false,
    contentType: false,
    processData: false,
    success: function (returndata) {
    // alert(returndata); return false;
    if ( returndata=="上传成功!") {
    alert("上传成功!");return true;
    };
    alert(returndata);return false;
    },
    error: function (returndata) {
    alert(returndata);
    }
    });
    }

    </script>

    php代码:

    <?php

    // 获取上传文件的信息
    // print_r($_FILES["uploadData"]);die();
    if(is_uploaded_file($_FILES['uploadData']['tmp_name'])){
      $upFile = $_FILES["uploadData"]; // 获取数组里面的值
      $name = $upFile["name"]; // 上传文件的文件名
      $type = $upFile["type"]; // 上传文件的类型
      $size = $upFile["size"]; // 上传文件的大小
      $tmp_name = $upFile["tmp_name"]; // 上传文件的临时存放路径
      //判断是否为图片
      switch ($type){
        case 'image/pjpeg': $okType=true;break;
        case 'image/jpeg': $okType=true;break;
        case 'image/gif': $okType=true;break;
        case 'image/png': $okType=true;break;
      }

      if($okType){
        /**
         * 0:文件上传成功<br/>
         * 1:超过了文件大小,在php.ini文件中设置<br/>
         * 2:超过了文件的大小MAX_FILE_SIZE选项指定的值<br/>
         * 3:文件只有部分被上传<br/>
         * 4:没有文件被上传<br/>
         * 5:上传文件大小为0
         */
        $error=$upFile["error"];// 上传后系统返回的值
        //把上传的临时文件移动到upload目录下面
        move_uploaded_file( $tmp_name,"./upload/".$name );
        if($error==0){
          echo "上传成功!";
        }elseif ($error==1){
          echo "超过了文件大小,在php.ini文件中设置";
        }elseif ($error==2){
          echo "超过了文件的大小MAX_FILE_SIZE选项指定的值";
        }elseif ($error==3){
          echo "文件只有部分被上传";
        }elseif ($error==4){
          echo "没有文件被上传";
        }else{
          echo "上传文件大小为0";
        }
      }else{
        echo "请上传jpg,gif,png等格式的图片!";
      }
    }else{
      echo "您没有上传任何东西!";
    }

    ?>

  • 相关阅读:
    laravel 同数据表字段比较查询和状态不正规排序
    laravel 集合
    laravel使用when搜索遇到状态参数(有0的状态)的坑
    laravel 列表搜索查询(when,with用法以及关联图像id处理图像路径)
    laravel 容器注入的坑
    PHP按符号截取字符串的指定部分
    php实现备份数据库
    数据类型 类型检测
    sublime
    vue 使用过程中自己遇到的bug
  • 原文地址:https://www.cnblogs.com/laowenBlog/p/5948452.html
Copyright © 2020-2023  润新知