2010-08-25 25 views
5

मैं वास्तव में बड़ी फ़ाइलों (> 200 एमबी) अपलोड करने में मदद करने के लिए कुछ सॉफ्टवेयर खोजने की कोशिश कर रहा हूं। मैं केवल एक फ़ाइल अपलोड करना चाहता हूं, कोई बहु-विकल्प नहीं। यदि संभव हो तो भी मुझे एक सरल प्रगति पट्टी चाहिए।फ़ाइल अपलोड करें बड़ी फ़ाइलें PHP/AJAX

मैं http://pixeline.be/experiments/jqUploader/ पर आया हूं जो सचमुच मुझे चाहिए, लेकिन इसकी प्रति 100 एमबी की सीमा है, क्योंकि यह फ़्लैश का उपयोग करती है।

क्या किसी को इसके जैसा कुछ और पता है, लेकिन बड़ी फ़ाइलों को संभाल सकता है?

THX

उत्तर

1

एक अन्य लोकप्रिय समाधान http://www.swfupload.org/ है, लेकिन मुझे लगता है कि यह 100 एमबी की सीमा से पीड़ित हो सकता।

बड़े शोध आकार के पूरे मुद्दे के बारे में, मेरे शोध से ऐसा लगता है कि बड़ी फ़ाइलों को अपलोड करने के लिए upload_max_filesize, post_max_size और max_execution समय के मानों को बढ़ाने के अलावा कोई अन्य विकल्प नहीं है। मुझे आश्चर्य है कि 500m के बाद post_max_size सेट होने के सुरक्षा प्रभाव क्या हैं? यह बैंडविड्थ का मुद्दा नहीं है जो मुझसे चिंतित है - यह संभावित डीओएस हमले है जो हमलावरों को सर्वर पर यादृच्छिक 500 एम POST अनुरोध भेजने की अनुमति देने से उत्पन्न हो सकता है। इस मुद्दे के लिए मैं सबसे अच्छा कामकाज सोच सकता हूं कि एक अलग सर्वर पर अपलोड भेजना है।

यहां पूरे मुद्दे का एक अच्छा चर्चा है:

http://aaronwinborn.com/blogs/aaron/how-handle-large-file-uploads

वहाँ किसी भी अपाचे हैकर्स post_max_size के लिए एक बहुत बड़ी मूल्य होने की सुरक्षा के प्रभाव है कि बहुत अच्छा होगा पर किसी भी प्रकाश डाला कर सकते हैं ।

+1

अपाचे स्वयं वास्तव में परवाह नहीं करता है कि फाइलें कितनी बड़ी हैं, मॉड्यूल चीजें 31/32 बिट सीमाएं (2.1/4.2gig) जैसी हैं। लेकिन अगर आपके पास बहुत बड़ी पोस्ट सीमा है, तो कनेक्शन के पूल में सभी उपलब्ध बच्चों को लंबे समय तक अपलोड और डीओएस मशीन (साथ ही एक्स्टॉस्ट डिस्क स्पेस) के साथ जोड़ना संभव है। छोटी सीमाओं के साथ करना मुश्किल है क्योंकि अपलोड तेज हो जाएंगे और तेजी से कनेक्शन रीसायकल करेंगे। बेशक, आप किसी भी तरह से कनेक्शन प्रयासों के साथ सर्वर को पूरी तरह से स्लैम कर सकते हैं। –

+0

max_execution_time केवल स्क्रिप्ट के निष्पादन समय को ही प्रभावित करता है। इसलिए वास्तविक फ़ाइल अपलोड के लिए किए गए समय को प्रभावित नहीं करता है। आपको ** max_input_time ** को महत्वपूर्ण रूप से बढ़ाने की आवश्यकता है। यह अधिकतम समय सेट करता है, सेकेंड में, स्क्रिप्ट को इनपुट प्राप्त करने की अनुमति है (फ़ाइल अपलोड करने सहित)। डिफ़ॉल्ट 60 सेकंड है। – Jakar

+0

तो, ** अधिकतम_इनपुट_टाइम ** कम से कम 1500 होना चाहिए यदि आपका अधिकतम फ़ाइल आकार 500 एमबी है। ** क्यों? ** क्योंकि औसत अपलोड गति लगभग 500 केबीपीएस है। या 1 एमबी हर 2 सेकंड। 500 (एमबी) * 2 सेकंड = 1000 सेकेंड। और कुछ उपयोगकर्ताओं के पास धीमे इंटरनेट हो सकते हैं या अन्य कार्यों के लिए अपनी कुछ बैंडविड्थ का उपयोग कर सकते हैं, इसलिए अतिरिक्त 500 या उससे अधिक की कुशन अच्छी होगी। http://us2.php.net/manual/en/features.file-upload.common-pitfalls.php – Jakar

0
+0

Thx। चूंकि यह (और वहां के अन्य समान उपकरण) फ़ाइलों को प्रस्तुत करने और अपलोड करने के लिए बस HTML 'फ़ाइल' इनपुट प्रकार का उपयोग करता है .. क्या आपको लगता है कि PHP अपलोड सीमाएं बदलने से सुरक्षा छेद पैदा होंगे? –

+0

बेशक। कोई भी आपकी बैंडविड्थ आसानी से खा सकता है। लेकिन विकास के पहले अब सुरक्षा छेद पर विचार करना अच्छा है। इसलिए आप बाद में उन छेदों को भरने के लिए सबसे अच्छा कर सकते हैं। –

1

मैं जावा अपलोडर को लागू करने की सिफारिश करता हूं, जैसे JumpLoader और इसे अपने वर्तमान सिस्टम से एकीकृत करें। इसमें व्यापक एपीआई है और इसका जेस्क्रिप्ट इंटरफेस भी आसानी से सुलभ है। तुम्हें पता है, के रूप में मैंने किया था, अपने सर्वर साइड हैंडलर कोड और यह करने में सक्षम बना सकते हैं:

  1. एकाधिक फ़ाइल फ़ाइल आकार में किसी भी सीमा के बिना
  2. अपलोड अपलोड करने -) मैं वर्तमान में fopen पर PHP के 2 जी सीमा के साथ संघर्ष कर रहा हूँ (, लेकिन मैं जल्द ही
  3. विभाजित अपलोडिंग का समाधान करने की उम्मीद - फ़ाइल मात्रा में अपलोड हो जाता
  4. ट्रांसमिशन अखंडता - JumpLoader भी परिकलन और हर विभाजन और पूरी फ़ाइल ही है, जो आप सर्वर साइड में मान्य कर सकते हैं कि क्या देखने के लिए md5 चेकसम भेज सकते हैं पैकेज ठीक या नहीं आया।

उम्मीद है कि यह मदद करता है।

2

आप बड़ी फ़ाइल अपलोड को संभालने के लिए HTML5 और AJAX का उपयोग करने का प्रयास कर सकते हैं। PHP स्ट्रीम के साथ संयोजन में आपको बहुत कम स्मृति उपयोग मिलेगा। अधिक विवरण के साथ यह लिंक है: कि :) के लिए

http://www.webiny.com/blog/2012/05/07/webiny-file-upload-with-html5-and-ajax-using-php-streams/

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