2010-10-13 14 views
12

के बीच मतभेद हैं जब मैं उन कार्यों का उपयोग करता हूं तो क्या अंतर होता है? मैं बजाय एक दूसरे से एक है ...php - प्रतिलिपि, नाम बदलें और move_uploaded_file

+0

'प्रतिलिपि' और 'नाम बदलें' के बीच का अंतर तुरंत स्पष्ट नहीं है? दोस्ताना आरटीएफएम के लिए – developerbmw

उत्तर

38
  • copy() प्रतियां फ़ाइल प्रयोग क्यों करना चाहिए - अब आप 2 फ़ाइलें है, और बड़ी फ़ाइलों के लिए, यह बहुत लंबे
  • rename() ले जा सकते हैं फ़ाइल का नाम, बदल जाता है जो इसका मतलब निर्देशिकाओं के बीच ले जाया जा सकता है।
  • move_uploaded_file() मूल रूप से rename() जैसा ही है, लेकिन यह केवल उन फ़ाइलों पर काम करेगा जो PHP के अपलोड तंत्र के माध्यम से अपलोड किए गए हैं। यह एक सुरक्षा सुविधा है जो उपयोगकर्ताओं को आपकी स्क्रिप्ट को सुरक्षा-प्रासंगिक डेटा दिखाने में छेड़छाड़ करने से रोकती है।

भविष्य में, मैं PHP Manual में ऐसी जानकारी को देखने का सुझाव देता हूं।

+18

+1 :) –

+0

हाँ अच्छा जवाब। –

8

मैं move_uploaded_file() के मैनुअल में यह पाया:

एच में फ्लोरियन एस an der ई [.de] 17-Aug-2008 09:02

move_uploaded_file (मेरे सेटअप पर) हमेशा फाइलें 0600 (rw- --- ---) बनाता है और उपयोगकर्ता द्वारा वेबसर्वर (मालिक और समूह) चलाते हुए स्वामित्व में है। भले ही निर्देशिका में समूह अनुमतियों के लिए एक चिपचिपा बिट सेट है! मुझे php.ini के माध्यम से इसे बदलने के लिए या umask() का उपयोग करने के लिए कोई सेटिंग नहीं मिल सका।

मैं चाहता हूं कि सर्वर पर मेरा नियमित उपयोगकर्ता tar cjf निर्देशिका में सक्षम हो .. जो पूरी तरह से वेबसर्वर-प्रक्रिया-उपयोगकर्ता द्वारा स्वामित्व वाली फ़ाइलों पर असफल होगा; copy(from, to) फ़ंक्शन चिपचिपा-बिट का पालन करता है!

तो ऐसा लगता है कि copy और rename थोड़ा अलग काम करते हैं।

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