2011-04-01 13 views
7

यह एक बेवकूफ सवाल की तरह लगता है, लेकिन फ़ाइल अपलोड करने के बाद फ़ाइल स्थान पर नहीं है php ने कहा था।फ़ाइल अपलोड नहीं/tmp

पहले साधारण परीक्षण पेज:

<html><body> 
<h1><?=$_FILES['imgup']['tmp_name'];?></h1> 
<? 
     print_r($_FILES); 
?> 
<form enctype="multipart/form-data" method="post" action="upload.php"> 
<input type="file" name="imgup" id="imgup"> 
<input type="submit"> 
</form> 
</body></html> 

अब, सादे पाठ में print_r:

Array ([imgup] => Array ([name] => ace.jpg [type] => image/jpeg [tmp_name] => /tmp/phpEdfBjs [error] => 0 [size] => 29737)) 

तो कोई त्रुटि, मानक के लिए देख पथ, लेकिन/tmp ऐसी कोई फाइल नहीं है। इसके अलावा, मेरे पूरे सिस्टम पर एक खोज चलाना bubkis बदल जाता है।

FYI करें: php.ini

max_execution_time = 120 
file_uploads = On 
upload_max_filesize = 2M 

है और फ़ाइल मेरे द्वारा अपलोड किया गया है -29

किसी भी विचार है?

उत्तर

16

अस्थायी फ़ाइल हटा दी जाती है जब प्राप्त होने वाली PHP स्क्रिप्ट चलाना समाप्त हो जाता है: यह केवल एक अस्थायी फ़ाइल है।

PHP स्क्रिप्ट जो आप फार्म पोस्टिंग के लिए कर रहे हैं - upload.php - एक गैर अस्थायी स्थान के लिए अस्थायी फ़ाइल बढ़ना चाहिए, move_uploaded_file()


मूल रूप से उपयोग करते हुए, विचार है:

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

करने के लिए इसे ले जाता है अपलोड सफलतापूर्वक समाप्त नहीं करता है, या आप के लिए कदम नहीं है, तो टी वह कहीं और फाइल करता है, अस्थायी फ़ाइल स्वचालित रूप से हटा दी जाती है। Handling file uploads - POST method uploads

इसका हिस्सा है जो आपकी समस्या से संबंधित है का हवाला देते हुए:

फ़ाइल से हटा दिया जाएगा


एक संदर्भ के रूप में, यदि आप मैन्युअल का निम्न अनुभाग पढ़ें चाहिए अनुरोध के अंत में अस्थायी निर्देशिका अगर अनुरोध या नामित नहीं किया गया है।

+0

ठीक है, मैंने जोड़ा: $ mv = move_uploaded_file ($ _ FILES ['imgup'] ['tmp_name'], "/var/www/testimg.jpg"); फ़ाइल के शीर्ष पर। $ एमवी हमेशा झूठी है, कोई चेतावनी जारी नहीं है। मैं कुछ भी गलत कर रहा हूँ? –

+1

क्या आप वेबसर्वर का उपयोगकर्ता * (जैसे कुछ लिनक्स वितरण पर 'www-data') हैं * */var/www/'में लिखने की अनुमति है? –

+0

जिसने इसे हल किया। बहुत बहुत धन्यवाद! –

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