मैं अपने सर्वर पर एकाधिक फ़ाइलों का अपलोड करने के लिए प्लूपलोड का उपयोग कर रहा हूं। इसका उपयोग करते हुए, पैरामीटर 'url:' upload.php 'है। upload.php फ़ाइलों को प्राप्त करने के रूप में पकड़ता है, और अगर वे चकित हो जाते हैं तो उन्हें पुनः संयोजित कर सकते हैं। एक बार पूर्ण फ़ाइल प्राप्त हो जाने के बाद, यह एक हरे रंग के चेकबॉक्स आइकन को प्रदर्शित करते हुए मूल पृष्ठ पर प्रतिक्रिया भेजता है।php नाम बदलें() मेरी फ़ाइल को दूषित क्यों कर रहा है?
मैंने अपलोड किए गए फ़ोटो में हेरफेर करने के लिए सभी मुख्य कोड के बाद, इस पृष्ठ पर कुछ कोड जोड़ा है। मेरी योजना है मेरी पूर्ण आकार की छवि, एलजी, मेड, और छोटे की तीन प्रतियां बनाना। मुझे यह हिस्सा काम कर रहा है, लेकिन फिर मैंने नामकरण योजना से मेल खाने के लिए मूल फ़ाइल का नाम बदलने का फैसला किया।
अब मुझे एक दूषित नामित फ़ाइल मिलती है, और इस प्रकार मेरी तीन छोटी छवियां भी दूषित हो जाती हैं।
//get the original file info
$filepath = $_SERVER['DOCUMENT_ROOT'].'/uploads/';
$filepathinfo = pathinfo($filepath.$fileName);//fileName is used previously in the file
//rename original file to a unique name
$finding_id = 'xyz';
$file_name_new = uniqid($client_id . '-' . $finding_id . '-', true); //doesn't include extension
//rename($filepath.$fileName, $filepath.$file_name_new.'.'.$ext);
//copy($filepath.$fileName, $filepath.$file_name_new.'.'.$ext);
के रूप में है, मैं अपने एक फ़ाइल मिलता है, या कैसे कभी कई मैं अपलोड किया है, बाइट आकार मूल सटीक मेल खाता है, और नाम ही रहता है (कुछ वर्णों को हटाने के लिए छोड़कर)।
यदि मैं केवल नाम बदलने का काम करता हूं, तो मुझे वास्तव में दो फाइलें मिलती हैं। बाइट आकार मूल तस्वीर कुल है। बड़ी फ़ाइल नीचे ग्रे के एक अनुभाग के साथ प्रदर्शित करता है। छोटी फ़ाइल बिल्कुल प्रदर्शित नहीं होती है।
यदि मैं केवल प्रतिलिपि फ़ंक्शन को अनमोल करता हूं, तो मुझे अपनी मूल फ़ाइल, मेरी मूल फ़ाइल, और दूसरी फ़ाइल, एक ही आकार और भ्रष्टाचार की एक सही नाम की प्रतिलिपि मिलती है क्योंकि बड़ी फ़ाइल नाम बदलती है।
कोई विचार? ऐसा लगता है कि यह बहुत सरल होना चाहिए।
क्या प्रक्रिया अपलोड की गई गई प्रक्रिया पूरी हुई? फाइल डिस्क्रिप्टर बंद था? सभी बफर फ्लेश किए गए थे? – Konerak
इस समाधान के अनुसार: http://stackoverflow.com/questions/3159431/php-change-file-extension, प्रतिलिपि प्रतिलिपि का उपयोग करना है। फिर भी, ऐसा नहीं करना चाहिए। – Horus
@ होरस - मैंने प्रतिलिपि की कोशिश की, लेकिन परिणाम के अजीब के रूप में मिला। इस प्लूपलोडर के साथ कुछ चलना चाहिए, जिसका मैंने पहले कभी उपयोग नहीं किया है। – Bob