2010-02-04 15 views
25

यदि मैं किसी फ़ॉर्म के माध्यम से एक टेक्स्ट फ़ाइल अपलोड करता हूं, तो क्या यह पहले से सर्वर पर सहेजने के बजाय $ _FILES चर से इसकी सामग्री को आउटपुट करना संभव है? मुझे पता है कि यह एक सुरक्षा जोखिम है, लेकिन यह केवल स्थानीय मशीन पर ही चलाया जाएगा।PHP अपलोड की गई टेक्स्ट फ़ाइल से पढ़ा है?

किसी भी सलाह की सराहना की।

धन्यवाद।

उत्तर

41

फ़ाइल को अपलोड होने के समय temp निर्देशिका में सहेजा गया है, लेकिन आप स्थायी स्थान पर सहेजे बिना इसे पढ़ने के लिए $_FILES['uploadedfile']['tmp_name'] का उपयोग कर सकते हैं।

if ($_FILES['uploadedfile']['error'] == UPLOAD_ERR_OK    //checks for errors 
     && is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) { //checks that file is uploaded 
    echo file_get_contents($_FILES['uploadedfile']['tmp_name']); 
} 

एक सहायक लिंक http://us2.php.net/manual/en/features.file-upload.php है:

+0

दोह, मैं यह सब कर रहा था, लेकिन HTML कुछ भी नहीं था जो पृष्ठ पर दिखाई देगा। मैं क्रोम का उपयोग कर रहा हूं, इसलिए जब मैंने दृश्य स्रोत पर क्लिक किया, तो उसने मुझे पृष्ठ का एक पुनः लोड संस्करण दिखाया, जहां टेक्स्ट फ़ाइल लोड नहीं हुई थी :) – Dan

4

दुर्भाग्य से, नहीं। कम से कम $ _FILES चर के माध्यम से नहीं। माफ़ कीजिये।

संपादित करें: यह हमेशा $ _FILES में अस्थायी फ़ाइल के रूप में सहेजा जाता है और आपको हमेशा सामग्री के लिए इसका उपयोग करना होगा।

+2

ठीक है, ठीक है, मैं सिर्फ तब पोस्ट नहीं करूंगा जब मुझे पता चले कि जवाब खराब समाचार है! – Teekin

+0

यह उत्तर सख्ती से सच है क्योंकि सवाल विशेष रूप से $ _FILES चर के बारे में पूछा गया है, लेकिन मुझे लगता है कि पोस्ट के बारे में पूछने के लिए अन्य उत्तरों सही हैं! – Lukos

63

कर

file_get_contents($_FILES['uploadedfile']['tmp_name']); 

वैध लेकिन आप यह भी सुनिश्चित है कि फाइल एक फार्म के माध्यम से और कहा कि कोई त्रुटि अपलोड किया गया था बनाने के लिए जाँच करनी चाहिए है अपलोड करने के दौरान हुआ

+1

हाय, मुझे is_uploaded_file के माध्यम से फ़ाइल क्यों जांचनी चाहिए? क्या कोई सुरक्षा समस्या है? इससे क्या समस्या हो सकती है? क्या आप इसे मुझे समझा सकते हैं या पोस्ट करने के लिए कुछ लिंक प्रदान कर सकते हैं? धन्यवाद – Facedown

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