读书人

怎么用XMLHttpRequest传送文件

发布时间: 2012-04-07 17:31:51 作者: rapoo

求助如何用XMLHttpRequest传送文件?
我如果直接用表格提交的话可以传送文件,但是如果使用下面的XMLHttpRequest传送的话却无法传送为啥呢???

JScript code
 $(            function()            {                var progressBar = document.querySelector("#progressBar");                var file = document.querySelector("#file");                    file.onchange = function(){                                                };//onchange                                $("#MainBoard #submit").click( function(){                    if(file.files[0])                    {                        $("#progressBar").css("display","inline");                        $("#MainBoard input").attr("disabled","disabled");                        var xhr = new XMLHttpRequest();                        if(xhr)                        {                            xhr.open('POST','mySpace_addFile.php');                            //soit utilise xhr.onreadystatechange                            if(xhr.readyState == 1)//1==Opened                            {                                xhr.onload = function(){                                                            if(xhr.readyState==4)                                                                alert("Upoload over");                                                            else                                                                alert("Error in upload");                                                            $("#progressBar").css("display","none");                                                            $("#MainBoard input").removeAttr("disabled");                                                        };//onload                                xhr.upload.onprogress = function(e){                                                            progressBar.value = e.loaded;                                                            progressBar.max = e.total;                                };//onprogres                                var form = new FormData();                                form.append('new_file', file.files[0]);//这个是文件,应该在$_FILES里                                form.append('anti_multipl',$("anti_multipl").val());//这个是变量,应该在$_POST里                                xhr.send(form);                            }else{                                alert("Cannot open server for upload");                            }                        }                    }                                    });//click            });//ready


[解决办法]
估计xhr做不了这个,
这个应该算作无刷新上传文件
记得以前看到有动态过建一个iframe让那个iframe以 提交文件的方式上传..网上应该有很多这类的库文件,

2用flash模块上传..

[解决办法]
ajax不能上传文件
enctype="multipart/form-data"
并不是ajax post的形式

读书人网 >JavaScript

热点推荐