1

細かいアップローダ (3.0) に奇妙な問題があり、ie9 を除くすべてのブラウザで動作します。

js エラーはありません。0byte のアップロードが失敗するだけです。valums php を使用していますが、ここで失敗します。

$realSize = stream_copy_to_stream($input, $temp);
        fclose($input);
        //This results in an error in ie9
        if ($realSize != $this->getSize()){            
            return false;
        }

戻り値にコメントすると、0 バイトのファイルが作成され、ie9 がデータを送信していないように見えます。何が問題なのか、何か考えがある人はいますか?

どうもありがとうございました。

編集:

必要なクライアント コードとして:

if($('#fine-uploader_main').length > 0){

        var method = $('#fine-uploader_main_method').val();
        var fileCount = 0;
        $('#fine-uploader_main').fineUploader({
            request: {
                endpoint: base_url+"ajax/"+method,//base_url+'ajax/upload_afile/can_id/'+$('#fine-uploader-can_id').val(),
            },
            text: {
                uploadButton: '<i class="icon-upload icon-white"></i> Upload'
            },
            template: '<div class="qq-uploader span12">' +
                  '<pre class="qq-upload-drop-area span12"><span>{dragZoneText}</span></pre>' +
                  '<div class="qq-upload-button btn btn-success" style="width: auto;">{uploadButtonText}</div>' +
                  '<span class="qq-drop-processing"><span>{dropProcessingText}</span><span class="qq-drop-processing-spinner"></span></span>' +
                  '<ul class="qq-upload-list" style="margin-top: 10px; text-align: center;"></ul>' +
                '</div>',
            classes: {
                success: 'alert alert-success',
                fail: 'alert alert-error'
            }
        }).on('complete', function(event, id, fileName,response) {
            if(response.success==true){
                $.ajax({
                    type: "POST", url: base_url+"ajax/"+method+"_return",data:"filename="+response.filename,
                    success: function(html){
                        $("#uploader_container").hide();
                        $("#uploader_success").html(html).show();
                        $("#fileupload-check").removeClass('required');
                    }
                });
            } else {
                //console.log(response);
            }
        });

    }
4

1 に答える 1

2

IE9 以前のデフォルトでは 3.0 でのみ送信される Multipart Encoded リクエストを処理していない可能性があります。IE9 以前と Android 2.3.x をサポートするには、サーバー側のコードでこれらのリクエストを適切に処理する必要があります。

于 2013-02-28T17:25:52.593 に答える