1

multipart / form-dataを使用して画像データを取得している場合、InternetExplorer9で画像アップロード機能が機能しないのはなぜですか。InternetExplorerで画像をアップロードするにはどうすればよいですか。

これは、画像のアップロードに使用しているコードです。

      var formData = new FormData($('form')[1]);


    var onclick_attr=$('#Upload').attr('onclick');
     $.ajax({
            url: '${pageContext.servletContext.contextPath}/UploadImage',
            data: formData,
            type: 'POST',
            cache: false,
            contentType: false,
            processData: false,
            beforeSend: function(xhr) {
                $('#process-img-div').hide();
                $('#uploading-img').show();
                $('#Upload').attr('onclick','').css('opacity','0.5');
                $('#loader-imgforlogo').show();
            },
            success: function(xhr) {

                var str = xhr.split('&');
                for(var i=0; i<str.length; i++) {
                    var keys = str[i].split(':');
                    if(keys[0]=='Name')
                        fileName = keys[1];
                    else if(keys[0]=='Width')
                        imgWidth = keys[1];
                    else if(keys[0]=='Height')
                        imgHeight = keys[1];
                    else if(keys[0]=='Path')
                        filePath = keys[1];
                    }

                $('#preview').attr({
                               'src':'${pageContext.servletContext.contextPath}/uploads/'+fileName
                });

                $('#process-img-div').show();
                $('#uploading-img').hide();
            },
            complete:function(jqXHR, textStatus){
                $('#Upload').attr('onclick',onclick_attr).css('opacity','1');
                $('#loader-imgforlogo').hide();
                $.fancybox.close(); 

            },
            error: function(xhr) {

            }
    });
     }
4

1 に答える 1

1

FormData オブジェクトは、IE10 まで Internet Explorer でサポートされていません。IE9 は FormData オブジェクトをサポートしていません。そのため、IE9 では動作しませんFormData オブジェクトのサポートされているブラウザを確認してください

また、別の同様の問題 FormData が Internet Explorer で機能しないことを確認してください。

FormData オブジェクトをサポートしていない古いブラウザーの場合は、まずブラウザーがサポートしているかどうかをこちらで確認できます。ブラウザーが HTML5 ファイルのアップロード (FormData オブジェクト) をサポートしているかどうかを確認するにはどうすればよいですか?

ブラウザーがサポートしていない場合は、フォーム dom 要素をトラバースし、json オブジェクトを作成して $.ajax メソッドのデータ属性値として設定できます。ファイルをアップロードする場合は、iframe アップロード ソリューションをご覧ください。

于 2012-11-27T09:08:42.517 に答える