原生ajax实现文件上传

2019-04-15 19:17发布

视图层 JS 函数:
  
   function sendFile(){
       var fd = new FormData();
       var pic=document.getElementById("up").files[0];
       var type=pic.type;                                              //文件类型        if(type!="image/jpeg"&&type!="image/png"){
            alert("请上传正确格式图片");
            return false;
        }
       var size=parseInt(pic.size)/1024/1024;             //文件大小(换算成 M)        if(size>5){alert('文件过大');return false;}
       fd.append(pic.name,pic);
       var xhr=new XMLHttpRequest();
       xhr.onreadystatechange=function(){
           if(xhr.readyState==4){
               alert(xhr.responseText);
           }
       }
       xhr.open("POST",''url",true);
       xhr.send(fd);
    }

控制器层:
        foreach($_FILES as $v){
            $image=$v;
        }
        unset($_FILES);
        //生成新的文件名
        $name=$image["name"];
        $index=strripos($name,".");
        $suffix=uniqid().substr($name,$index,strlen($name)-$index);
        //创建目录
        $dir="./rm_word/".date("Y-m-d");
        if(!file_exists($dir)){
            mkdir($dir,true,777);
        }
        $filename=$dir."/".$suffix;
        //移动文件
        $res=move_uploaded_file($image['tmp_name'],$filename);
        if($res){
           echo 'success';
        }