jquery中怎么利用ajax实现文件上传功能

科技资讯 投稿 5900 0 评论

jquery中怎么利用ajax实现文件上传功能

本章内容给大家谈谈关于遇上jquery中怎么利用ajax实现文件上传功能等问题,我们该怎么处理呢。下面这篇文章将为你提供一个解决思路,希望能帮你解决到相关问题。

一、文件上传方法的选择

在jquery中实现文件上传功能,需要选择上传方法。一般来说,有两种方法可供选择:表单提交和ajax上传。如果使用表单提交,需要使用form标签和input标签来实现。而ajax上传可以更为方便,可以直接在客户端向服务器发送文件。

二、实现ajax上传

要实现ajax上传,需要使用jquery的ajax方法。ajax方法可以向服务器发送http请求,包括文件上传请求。其中,需要特别注意的是,对于文件上传请求,需要创建一个FormData对象,将需要上传的文件编入其中。然后再将FormData对象传递给ajax方法的data属性,同时设置processData属性为false,设置contentType属性为false,以告诉jquery不要修改数据格式。


$("form").submit(function(e){
    e.preventDefault(); //阻止表单提交
    var formdata = new FormData();  
    var filedata = $('#file').get(0).files[0];
    formdata.append('file', filedata);
    $.ajax({
        url: 'upload.php', //上传文件的地址
        type: 'post',
        data: formdata, //上传的文件数据
        processData: false, //jQuery不要去处理发送的数据
        contentType: false, //jQuery不要去设置Content-Type请求头
        success: function(data){
            //请求成功后的操作
        },
        error: function(){
            //请求失败后的操作
        }
    });
});

三、后台处理上传文件

上面的代码已经可以将文件上传到指定的地址,但是,服务器需要一个后台脚本来接收和处理上传的文件。后台脚本需要获取上传的文件,可以使用$_FILES来实现。同时,需要判断文件是否上传成功,并进行相应的处理,例如将上传的文件保存到服务器的指定目录,或者将上传的文件信息保存到数据库中。


$allowtype = array('jpg', 'gif', 'png'); //允许上传的文件类型
$filepath = "uploads/"; //文件保存路径
if(isset($_FILES['file'])){
    $file = $_FILES['file'];
    if($file['error'] == 0){ //上传成功
        $fileext = strtolower(substr(strrchr($file['name'], '.'), 1));
        if(!in_array($fileext, $allowtype)){
            echo '文件类型错误!';
            exit;
        }
        $newfile = time() . '.' . $fileext;
        $result = move_uploaded_file($file['tmp_name'], $filepath.$newfile);
        if($result){
            echo '文件上传成功!';
        }else{
            echo '文件上传失败!';
        }
    }else{
        echo '上传出错!';
    }
}

总结

以上就是为你整理的jquery中怎么利用ajax实现文件上传功能全部内容,希望文章能够帮你解决相关问题,更多请关注本站相关栏目的其它相关文章!

编程笔记 » jquery中怎么利用ajax实现文件上传功能

赞同 (27) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽