2013-04-06 4 views
9

मेरे पास 64000 छोटी छवियां हैं जिन्हें मैं अपनी वेबसाइट पर अपलोड करना चाहता हूं (मौजूदा सत्यापन का उपयोग करके, इसलिए कोई एफ़टीपी आदि नहीं)। मैंने कुछ समय के लिए एक सैकड़ों या सैकड़ों छवियों के लिए उपयोग किए जाने के लिए एक HTML5 [एकाधिक] प्रकार = फ़ाइल इनपुट बनाया है। सैकड़ों कोई समस्या नहीं है। छवियों को बैच किया गया है और सर्वर पर भेजा गया है।एचटीएमएल 5 [एकाधिक] फ़ाइल इनपुट में चुनने के लिए फ़ाइलों की अधिकतम संख्या क्या है?

लेकिन जब मैं ~ 16000 छवियों का एक फ़ोल्डर चुनता हूं, तो फ़ाइल इनपुट की फ़ाइलसूची खाली होती है ... विनिमय ईवेंट ट्रिगर होता है, लेकिन फ़ाइल सूची खाली होती है। ब्राउज़र (या फ़ाइल सिस्टम या ओएस?) में इस फाइल को चुनने में कोई समस्या है।

मैं क्या अधिकतम हो सकता है मदद करने के लिए निर्धारित एक बहुत छोटे से उपकरण बना लिया है:

  • फ़ाइलों की संख्या
  • संख्या: 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>'; 
    }; 
    

    सभी यह होता है गिनती है पात्रों के सभी फ़ाइल नाम संयुक्त होते हैं

  • कुल फ़ाइल आकार के एमबी की संख्या

जब मैं यह कोशिश, मैं के रूप में मिलता है बहुत सबसे:

1272 फाइलें: १७६.०५३९८७ एमबी/फ़ाइल नाम के 31,469 वर्ण

(पर 32 & 64 बिट Win7, क्रोम 26-52)

अगली छवि (जो विफल रहता है) होगा:

  • 1273 छवियों, जो स्पष्ट सी नहीं है यूआर -0
  • 176 और 177 एमबी फाइलसाइज के बीच, एक स्पष्ट कट-ऑफ
  • फ़ाइल नामों के 32000 वर्णों से भी कम नहीं, एक स्पष्ट कट ऑफ भी नहीं है, हालांकि यह क्रमशः 32k जैसा दिखता है ...

मेरे कैल्क में, 1 एमबी = 1000^2 बाइट्स, 1024^2 नहीं। (यह एक एमआईबी होगा, लेकिन शायद मेरा ओएस/फाइल सिस्टम/ब्राउज़र असहमत है।)

मेरा प्रश्न होगा: यह कई फाइलें क्यों हैं? यह अधिकतम क्यों है? क्या यह ओएस निर्भर है या ब्राउज़र निर्भर है? मुझे इसके लिए चश्मा कहां मिलेंगे? क्या यह जेएस 'गलती है? "फ़ाइल इनपुट अधिकतम फ़ाइलों" के लिए खोजें एट अल केवल [अधिकतम] विशेषता में परिणाम देता है, जो अप्रासंगिक है।

अधिक परीक्षण के परिणाम:

  • Firefox में अधिकतम लगता है कहीं अधिक होने का। कम से कम "2343 फाइलें: 310.66553999999996 एमबी/60748 फाइलनाम के वर्ण" (यह मेरी सभी फाइलें हैं)
  • फ़ायरफ़ॉक्स में भी: "16686 फ़ाइलें: 55।144,415 एमबी फ़ाइल नाम के/146,224 वर्ण "(बहुत छोटे हैं, लेकिन और अधिक फ़ाइलें)

अद्यतन

  • क्रोम 52 कनारी विंडोज अभी भी फ़ाइल नाम
  • फ़ायरफ़ॉक्स (44+) विंडोज के 32k है अभी भी असीमित है

उत्तर

17

क्यों यह कई फाइलों?

फ़ाइलों की संख्या सभी फ़ाइल नामों को जोड़कर वर्णों की संख्या पर निर्भर करती है।

यह अधिकतम क्यों?

विंडोज एपीआई में, अधिकतम पथ लंबाई सीमा 256 वर्ण है, यूनिकोड संस्करण एपीआई 32,767 वर्ण है।

क्रोम बस यूनिकोड संस्करण API की अधिकतम पथ लंबाई सेट करता है, इसलिए यह आपके द्वारा देखी गई 32k वर्णों के बारे में है।
चेक यह सुधार: https://code.google.com/p/chromium/issues/detail?id=44068

फ़ायरफ़ॉक्स गतिशील रूप से एक बफर काफी बड़ा एकाधिक चयनित फ़ाइलों, जो बहुत बड़ा पथ की लंबाई को संभाल सकता का आकार धारण करने के लिए आवंटित करता है।
चेक यह सुधार: https://bugzilla.mozilla.org/show_bug.cgi?id=660833

यह निर्भर या ब्राउज़र निर्भर OS है?

दोनों।

मुझे इसके लिए चश्मा कहां मिलेंगे?

विंडोज एपीआई उपयोग और संदर्भ के लिए:
http://msdn.microsoft.com/en-us/library/aa365247.aspx (अधिकतम पथ लंबाई सीमा)
http://msdn.microsoft.com/en-us/library/ms646839(VS.85).aspx

यह जे एस की गलती है?

सं

+0

बिल्कुल सही जवाब! क्रोमियम के अनुसार यह 10 में तय है। ठीक है ... और मैं टिप्पणी नहीं कर सकता = (मैंने 2 'निश्चित' मुद्दों से जुड़ी एक नई समस्या बनाई है: https://code.google.com/p/chromium/ मुद्दों/विवरण? आईडी = 237500 – Rudie

+0

बहुत अच्छा। विंडोज़ मशीन पर मैं परीक्षण करने में सक्षम था कि फ़ाइल नाम में 215 वर्णों की ऊपरी सीमा हो सकती है + डॉट + 3 एक्सटेंशन वर्ण = 21 9 वर्ण सभी में। – Rose

+2

समस्या अभी भी है क्रोम 50 में मौजूद यह क्रोमियम बग ट्रैकर देखें: https://bugs.chromium.org/p/chromium/issues/detail?id=112538 – Alex

संबंधित मुद्दे