原生ajax实现文件上传

本文介绍了一个简单的文件上传功能实现,包括前端使用JavaScript进行文件类型的验证和大小限制,并通过AJAX发送到服务器。后端采用PHP接收文件并进行重命名及移动操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视图层 JS 函数:
   <input type="file" onchange="sendFile()" id="up" />
   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';
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值