2013-04-06 41 views
9

我有64000個小圖片想上傳到我的網站(使用現有的驗證,所以沒有FTP等)。我已經爲此創建了一個HTML5 [multiple] type =文件輸入,用於一百或幾百張圖像。數百個不是問題。圖像被批量處理併發送到服務器。在HTML5 [多個]文件輸入中選擇的文件的最大數量是多少?

但是,當我選擇一個〜16000圖像的文件夾時,文件輸入的FileList爲空... onchange事件觸發,但文件列表爲空。瀏覽器(或文件系統或操作系統?)選擇這麼多文件似乎有問題。

我創建了一個很小的工具,以幫助確定這可能是最大:http://jsfiddle.net/rudiedirkx/Ehhk5/1/show/

$inp.onchange = function(e) { 
    var l = 0, b = 0; 
    for (var i=0, F=this.files, L=F.length; i<L; i++) { 
     l += F[i].name.length; 
     b += F[i].size; 
    } 
    $nf.innerHTML += this.files.length + ' files: ' + (b/1000/1000) + ' MB/' + l + ' chars of filename<br>'; 
}; 

它所做的就是數:

  • 文件數
  • 數字符全部文件名合併
  • 總文件大小的MB數

當我嘗試,我得到非常最:

1272文件:176.053987 MB /文件名字符31469

(在32 & 64位的Win7,鉻26-52)

下一個圖像(其將失敗)將是:

  • 1273圖像,這不是一個明顯ç ut-off
  • 176和177 MB之間的文件大小,也不是一個明顯的截止點
  • 文件名少於32000個字符,也不是一個明顯的截斷,儘管它排序 - 可能看起來像32K ...

在我的計算中,1 MB = 1000^2字節,而不是1024^2。 (這將是一個MiB,但也許我的操作系統/文件系統/瀏覽器不同意。)

我的問題是:爲什麼這麼多文件?爲什麼這個最大?它依賴於操作系統還是瀏覽器?我在哪裏可以找到那個規格?是JS的錯嗎?搜索「文件輸入最大文件」等只會導致[max]屬性,這是無關緊要的。

更多的測試結果:

  • 在Firefox最大似乎要高得多。至少「2343個文件:310.66553999999996 MB/60748字符的文件名」(這是我在這裏的所有文件)
  • 在Firefox中也:「16686文件:55。144415 MB文件名/ 146224字符」(小很多,但更多的文件)

更新

  • 鉻52級金絲雀的Windows仍然是文件名
  • 火狐(44+)的Windows 32K仍然是無限

回答

17

爲什麼這麼多文件?

文件數取決於組合所有文件名的字符數。

爲什麼最大?

在Windows API中,最大路徑長度限制爲256個字符,Unicode版本API爲32,767個字符。

Chrome簡單地設置了Unicode版本API的最大路徑長度,所以它就像你觀察到的那樣是32k字符。
檢查此修復程序:https://code.google.com/p/chromium/issues/detail?id=44068

火狐動態分配大到足以容納多個選擇的文件,它可以處理更大的路徑長度大小的緩衝區。
檢查此修復程序:https://bugzilla.mozilla.org/show_bug.cgi?id=660833

它是取決於操作系統或瀏覽器依賴?

兩者。

我在哪裏可以找到該規格?

對於Windows API的使用和參考:
http://msdn.microsoft.com/en-us/library/aa365247.aspx(最大路徑長度不限)
http://msdn.microsoft.com/en-us/library/ms646839(VS.85).aspx

它是JS的錯?

+0

完美的答案!根據Chromium,它被固定在10.正確的...而我不能評論=(我已經創建了一個新的問題鏈接到2'固定'的問題:https://code.google.com/p/chromium/問題/詳細信息?id = 237500 – Rudie 2013-05-02 13:15:32

+0

很酷。在一臺Windows機器上,我能夠測試文件名的最大長度爲215個字符+點+3個擴展字符=總共219個字符 – Rose 2015-11-07 02:13:03

+2

問題仍然存在目前在Chrome 50中查看此Chromium錯誤跟蹤器:https://bugs.chromium.org/p/chromium/issues/detail?id = 112538 – Alex 2016-05-19 19:34:39

相關問題