Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用XMLHttpRequest上传AJAX文件,支持IE 9_Javascript_Jquery_Ajax_Xmlhttprequest - Fatal编程技术网

Javascript 使用XMLHttpRequest上传AJAX文件,支持IE 9

Javascript 使用XMLHttpRequest上传AJAX文件,支持IE 9,javascript,jquery,ajax,xmlhttprequest,Javascript,Jquery,Ajax,Xmlhttprequest,我正在尝试使用ajax上传一个文件。下面的代码在除IE 9和以前版本之外的所有浏览器上都能完美工作。不幸的是,我被迫支持这些浏览器,所以我想知道如何修改这些代码,使其能够在IE上工作 我看到一些帖子建议使用iframe,但我看不出这是如何解决我的问题的 我尝试过使用fileInput.name,因为I.e似乎不允许我拥有一个文件数组,这意味着我实际上可以到达它发送的行,但我不确定该行应该是什么。发送(文件输入);似乎不起作用 还尝试使用formdata,但后来发现ie9不支持 非常感谢你的帮助

我正在尝试使用ajax上传一个文件。下面的代码在除IE 9和以前版本之外的所有浏览器上都能完美工作。不幸的是,我被迫支持这些浏览器,所以我想知道如何修改这些代码,使其能够在IE上工作

我看到一些帖子建议使用iframe,但我看不出这是如何解决我的问题的

我尝试过使用fileInput.name,因为I.e似乎不允许我拥有一个文件数组,这意味着我实际上可以到达它发送的行,但我不确定该行应该是什么。发送(文件输入);似乎不起作用

还尝试使用formdata,但后来发现ie9不支持

非常感谢你的帮助

 <script>
    function uploadFile(fileInput, label1, label2, filename) {
        var fileInput = document.getElementById(fileInput);

        var xhr;
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        } else {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }

        xhr.open('POST', 'Create/Upload');
        xhr.setRequestHeader('Content-type', 'multipart/form-data');
        //Appending file information in Http headers

        //xhr.setRequestHeader('X-File-Name', filename);
        xhr.setRequestHeader('X-File-Type', fileInput.files[0].name);
        xhr.setRequestHeader('X-File-Type', fileInput.files[0].type);
        xhr.setRequestHeader('X-File-Size', fileInput.files[0].size);
        xhr.setRequestHeader('X-Type', label1);
        //Sending file in XMLHttpRequest
        xhr.send(fileInput.files[0]);

        //xhr.send(fileInput);


        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4 && xhr.status == 200) {
                $('#' + label1).text(xhr.responseText.replace(/\"/g, ""));
                document.getElementById(label1).style.color = "green";
                document.getElementById(label2).style.display = 'none';
            }
            else {
                $('#' + label1).text("File upload failed");
                document.getElementById(label1).style.color = "red";
            }
        }
    }
    document.getElementById('uploaderAuto').onsubmit = function () {

        myfile = $('#fileInputAuto').val();
        var ext = myfile.split('.').pop();
        ext = ext.toLowerCase();
        if (ext == "pdf" || ext == "docx" || ext == "doc" || ext == "odf" || ext == "rtf") {
            uploadFile('fileInputAuto', 'Auto', "AutoView", myfile);
        } else {
            alert("The following is a list of accepted file types:\n\n - Word Document (*.doc)\n - Word Document (*.docx)\n - Portable Document Format (*.pdf)\n - Open Document Format (*.odf)\n - Rich Text Format (*.rtf)\n\nPlease choose a file with one of these file types.");
        }

        return false;
    }

    document.getElementById('uploaderOther1').onsubmit = function () {
        myfile = $('#fileInputOther1').val();
        uploadFile('fileInputOther1', 'Other1', 'Other1View', myfile);
        return false;
    }

    document.getElementById('uploaderOther2').onsubmit = function () {
        myfile = $('#fileInputOther2').val();
        uploadFile('fileInputOther2', 'Other2', 'Other2View', myfile);
        return false;
    }
</script>

函数上传文件(fileInput,label1,label2,文件名){
var fileInput=document.getElementById(fileInput);
var-xhr;
if(window.XMLHttpRequest){
xhr=newXMLHttpRequest();
}否则{
xhr=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
xhr.open('POST','Create/Upload');
setRequestHeader('Content-type','multipart/formdata');
//在Http头中追加文件信息
//setRequestHeader('X-File-Name',文件名);
xhr.setRequestHeader('X-File-Type',fileInput.files[0].name);
xhr.setRequestHeader('X-File-Type',fileInput.files[0].Type);
setRequestHeader('X-File-Size',fileInput.files[0].Size);
xhr.setRequestHeader('X-Type',标签1);
//在XMLHttpRequest中发送文件
send(fileInput.files[0]);
//发送(文件输入);
xhr.onreadystatechange=函数(){
如果(xhr.readyState==4&&xhr.status==200){
$(“#”+label1).text(xhr.responseText.replace(/\”/g“”);
document.getElementById(label1.style.color=“绿色”;
document.getElementById(label2.style.display='none';
}
否则{
$('#'+label1).text(“文件上载失败”);
document.getElementById(label1.style.color=“红色”;
}
}
}
document.getElementById('uploaderAuto')。onsubmit=function(){
myfile=$('#fileInputAuto').val();
var ext=myfile.split('.').pop();
ext=ext.toLowerCase();
如果(ext==“pdf”| | ext==“docx”| | ext==“doc”| | ext==“odf”| ext==“rtf”){
上传文件('fileInputAuto','Auto','AutoView',myfile);
}否则{
警报(“以下是可接受的文件类型列表:\n\n-Word文档(*.doc)\n-Word文档(*.docx)\n-可移植文档格式(*.pdf)\n-打开文档格式(*.odf)\n-富文本格式(*.rtf)\n\n请选择具有这些文件类型之一的文件。”;
}
返回false;
}
document.getElementById('uploaderOther1')。onsubmit=function(){
myfile=$('#fileInputOther1').val();
上传文件('fileInputOther1','Other1','Other1View',myfile);
返回false;
}
document.getElementById('uploaderOther2')。onsubmit=function(){
myfile=$('#fileInputOther2').val();
上传文件('fileInputOther2','Other2','Other2View',myfile);
返回false;
}

我最终使用了这里的脚本:它运行得非常好

我使用的是asp.net服务器端,因此本教程有助于: