使用ie9上传Ajax文件

时间:2015-02-23 16:40:51

标签: jquery ajax asp-classic internet-explorer-9

我有一个jQuery脚本,它使用Ajax将文件发布到ASP页面。

它适用于Chrome,但我遇到了IE9的问题。

因为IE9没有读取FormData()函数,所以我添加了if语句:

if(typeof FormData == "undefined"){

但现在我在控制台中收到此错误:

SCRIPT5007: Unable to get value of the property 'length': object is null or undefined 

以下是完整代码:

        <INPUT type="file" name="file" id="file">
        <a id="upload_file" class="button">
            Upload File
        </a>

        <script>
        $("a#upload_file").click(function(){

            if(typeof FormData == "undefined"){
                var data = [];
                jQuery.each(jQuery('#file')[0].files, function(i, file) {
                      data.push('file-'+i, file);
                });
            } else {
                var data = new FormData();
                jQuery.each(jQuery('#file')[0].files, function(i, file) {
                      data.append('file-'+i, file);
                });
            }

            jQuery.ajax({
                url: 'file_save.asp',
                data: data,
                cache: false,
                contentType: false,
                processData: false,
                type: 'POST',
                success: function(data){
                    $("#upload_success").text("Your file has uploaded successfully.");
                    $("#file_location").val("files/" + data);
                    $(".filename").html("");
                }
            });
        });
        </script>

0 个答案:

没有答案