2010-05-30 8 views
20

फ़ाइल को केवल आंशिक रूप से अपलोड क्यों किया जा सकता है?फ़ाइल को केवल आंशिक रूप से अपलोड क्यों किया जा सकता है?

मैं अपनी PHP फ़ाइल अपलोड स्क्रिप्ट में त्रुटि-प्रबंधन में सुधार कर रहा हूं और यह पता लगाने की कोशिश कर रहा हूं कि UPLOAD_ERR_PARTIAL को कैसे ठीक से संभालना है।

क्या मुझे उपयोगकर्ता को फ़ाइल को फिर से अपलोड करने का प्रयास करने के लिए संकेत देना चाहिए, या क्या मुझे उन्हें सूचित करना चाहिए कि एक और गंभीर समस्या है जो उन्हें संभावित रूप से वैध फ़ाइल अपलोड करने से रोक रही है?

उत्तर

5

फ़ाइल केवल आंशिक रूप से क्यों अपलोड हो सकती है?

आमतौर पर उपयोगकर्ता अपलोड को रद्द करने के कारण होता है।

मैं उपयोगकर्ता फ़ाइल को पुन: अपलोड लेने के लिए तैयार करना चाहिए, या मैं उन्हें सूचित चाहिए एक और अधिक गंभीर समस्या जो उन्हें एक संभवतः वैध फ़ाइल को अपलोड करने से रोक रहा है है कि वहाँ?

आपको उन्हें फिर से प्रयास करने के लिए संकेत देना चाहिए और यदि समस्याएं साइट मालिकों से संपर्क करना जारी रखती हैं, जिसमें जितना संभव हो उतना विस्तार शामिल है।

+0

हमें इस मामले को जेएस और सर्वर के साथ PHP के साथ क्लाइंट साइड पर कैसे संभालना चाहिए? मेरा मतलब है, यदि उपयोगकर्ता फ़ाइल अपलोड करता है और फिर फ़ाइल पर अभी भी एक रद्द बटन पर क्लिक करता है, जबकि फ़ाइल अभी भी अपलोड हो रही है, तो मैं '.abort() 'को कॉल कर सकता हूं, PHP को उस जानकारी को कैसे प्राप्त किया जाएगा जिसे उपयोगकर्ता ने रद्द कर दिया था अपलोड? स्पष्टीकरण के लिए – tonix

24

UPLOAD_ERR_PARTIAL तब दिया जाता है जब फ़ाइल डेटा के बाद माइम सीमा नहीं मिलती है। इसके लिए एक संभावित कारण यह है कि अपलोड उपयोगकर्ता द्वारा रद्द किया गया था (दबाया ईएससी, आदि)।

मुझे लगता है कि यह उपयोगकर्ता को सूचित करने के लिए पर्याप्त है कि फ़ाइल केवल आंशिक रूप से अपलोड की गई है और एक पुनः प्रयास समस्या को ठीक करेगा।

+8

+1 "जब फ़ाइल डेटा के बाद माइम सीमा नहीं मिली है" – Seb

+0

@ सेब पूरी तरह से उसे +1 किया। एक समान मुद्दे में चल रहा था और उस छोटे साइड-नोट ने मुझे स्रोत पर पहुंचाया। :) –

+0

मेरे मामले में, मैं अंतिम (- इस मामले में निम्नलिखित) सीमा पर अग्रणी '--' भूल गया था। सबक सीखा :-) – ninetwozero

2

ठीक है, फाइल अपलोड द्वारा बाधित किया जा सकता है: गंतव्य में स्थान के समाप्त

कनेक्शन रुकावट

नुकसान फ़ाइल

गलत नाम

गलत विस्तार

आदि ...

सबसे अच्छा आप कर सकते हैं की पुष्टि करने और अपलोड प्रक्रिया की रक्षा के लिए साथ पहले वास्तव में सत्यापन सर्वर से फाइल भेजने करता है ...

पहली बार मैं कर दिया है एक फाइल अपलोड स्क्रिप्ट, मैं कोड की 1 लाइन का इस्तेमाल किया है, अब, एक ही स्क्रिप्ट एक वेब पेज की तरह लगता है, विस्तार और फ़ाइल आकार) को नियंत्रित करने के लिए)

संपादित (उदाहरण:

अगर ((

($file_up["type"] == "image/gif") || 

($file_up["type"] == "image/jpeg") || 

($file_up["type"] == "image/jpg") || 

($file_up["type"] == "image/pjpeg") || 

($file_up["type"] == "image/bmp") || 

($file_up["type"] == "image/tiff") || 

($file_up["type"] == "image/png")) && 

($file_up["size"] < 1050000)) 

{ 

    code if all ok... 


} 
+2

गलत विस्तार? एक उदाहरण मिला? –

+0

हम ... हाँ, बस कल्पना करें कि आपका इनपुट केवल चित्रों के साथ काम कर रहा है और उपयोगकर्ता दस्तावेज़ अपलोड करने का प्रयास करता है, अगर यह केवल चित्र होना चाहिए, तो आपको किसी भी अन्य फ़ाइल एक्सटेंशन से इंकार कर देना चाहिए (संपादन टिप्पणी के तहत मेरा उत्तर देखें ... – Zuul

+3

सवाल यह है कि फ़ाइल नाम/एक्सटेंशन एक UPLOAD_ERR_PARTIAL का कारण कैसे होगा? – webbiedave

8

यह एक पुरानी पोस्ट है, लेकिन मैं UPLOAD_ERR_PARTIAL के एक यादृच्छिक समस्या थी, और मेरे समाधान पोस्ट।

समस्या यह है कि 2/3 अपलोड के बाद मुझे क्लाइंट द्वारा किसी भी बाधा के बिना UPLOAD_ERR_PARTIAL की एक त्रुटि प्राप्त हुई।

मेरी समस्या Keep-Alive सर्वर से संबंधित थी।

मैं

header ("Connection: close"); 

कि कनेक्शन को बंद करने के लिए मजबूर अपलोड करने के लिए PHP स्क्रिप्ट के अंत में डालने से इसे हल। इसने मेरी समस्या हल कर दी है।

मुझे उम्मीद है कि कोई मदद कर सकता है।

इस LINK

+1

मेरे लिए काम किया! मैंने घंटों बिताए कि मेरी स्क्रिप्ट विफल हो रही है/फ्लेकी लगता है कि यह सर्वर था। – Treemonkey

+0

@Treemonkey उपयोगी होने के लिए खुश ;-) –

+0

यहां डुप्लिकेट किया गया: http://stackoverflow.com/questions/12425394/post-data-is-missing-when-posting-the-same-data-in-rapid-sequence –

1

यह करने के लिए धन्यवाद कुछ लोगों को मदद मिल सकती है, लेकिन मैं एक ही समस्या थी। मेरे समाधान libapache2-आधुनिक-php5filter स्थापना रद्द करें और शास्त्रीय एक ही समस्या libapache2-आधुनिक-PHP5

+1

धन्यवाद! मेरे लिए कुछ और काम नहीं किया। यह किया था! –

0

मेरे पास से बदलने के लिए था और साथ पैकेज libapache2-आधुनिक-php5filter संबंधित था, मैं पी और समस्या अंत को हटा दें। मुझे उम्मीद है कि कोई मदद कर सकता है।

+1

@yellowantphil मुझे एक सीमा रेखा के जवाब की तरह दिखता है –

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

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