簡體   English   中英

在IE8 / 9中使用blueimp文件上傳插件的jQuery $ _FILES數組為空

[英]jQuery $_FILES array empty with blueimp file upload plugin in IE8/9

有關與IE8 / 9中的Blueimp文件上傳插件有關的StackOverflow有很多問題,但我找不到與我的問題直接相關的任何內容。

我在IE8 / 9模擬器模式下使用IE10。 每次PHP $ _FILES數組為空。 我包括jquery.iframe-transport.js ,它加載很好。 沒有JavaScript錯誤。 $ _FILES數組只是空的。

我已經嘗試評論出dataType: 'json',這是在另一個半相關問題中推薦的行,但這沒有幫助。

不知道該怎么做,找不到與此相關的任何內容。 任何幫助表示贊賞。

這是JavaScript:

$('#photo-file').fileupload(
    {
        url: 'photos/upload',
        dataType: 'json',
        autoUpload: true,
        acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
        maxFileSize: 8000000 // 8 MB
    }
)
.on(
    'fileuploadadd',
    function (e, data)
    {
        console.log('fileuploadadd');
        if (total_photos_queue < available_photos)
            total_photos_queue++;
        else
            return false;
    }
)
.on(
    'fileuploadsubmit',
    function (e, data)
    {
        console.log('fileuploadsubmit');
        progress_bar.width('0%');
        progress_bar.fadeIn();
    }
)
.on(
    'fileuploadprogressall',
    function (e, data)
    {
        console.log('fileuploadprogressall');
        var progress = parseInt(data.loaded / data.total * 100, 10);
        progress_bar.css('width', progress + '%');
    }
)
.on(
    'fileuploaddone',
    function (e, data) {
        console.log('fileuploaddone');
        $.each(
            data.result.files,
            function (index, file)
            {
                if (file.filename)
                    photo_uploaded(file.id, file.filename, file.subdir);
                else if (file.error)
                    console.log('error: ' + file.error);
            }
        );
    }
)
.on(
    'fileuploadstop',
    function (e) {
        console.log('fileuploadstop');
        progress_bar.fadeOut();
    }
)
.prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');

PHP很簡單(用於調試):

var_dump($_FILES); die();

我想出來了,所以對於有類似問題的人來說,我是如何解決它的。

在我的.on('fileuploadsubmit', function(e, data){ .. })事件中,我將<input type="file">為禁用,以防止用戶在上傳時提交文件(我刪除了來自原始帖子中的示例JavaScript代碼段,因為我認為這不重要)。 IE8和IE9不喜歡這個。 將輸入禁用代碼放在setTimeout() ,延遲為100毫秒,解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM