PHP त्रुटि - एक फ़ाइल अपलोड कर रहा है

मैं अपने वेबसर्वर पर एक फ़ोल्डर में फ़ाइल अपलोड करने के लिए कुछ PHP लिखने की कोशिश कर रहा हूं। मेरे पास यह है:

<?php
    if ( !empty($_FILES['file']['tmp_name']) ) {
        move_uploaded_file($_FILES['file']['tmp_name'], './' . $_FILES['file']['name']);
        header('Location: http://www.mywebsite.com/dump/');
        exit;
    }
?>


<html>
    <head>
        <title>Dump Upload</title>
    </head>
    <body>
        

Upload a File

        <form action="upload.php" enctype="multipart/form-data" method="post">
            <input type="hidden" name="MAX_FILE_SIZE" value="1000000000" />
            Select the File:
<input type="file" name="file" />
<input type="submit" value="Upload" /> </form> </body> </html>

मुझे ये त्रुटियां मिल रही हैं:

चेतावनी: move_uploaded_file (./ test.txt) [function.move-upload-file]: स्ट्रीम खोलने में विफल: E: \ inetpub \ vhosts \ mywebsite.com \ httpdocs \ dump \ upload.php पर अनुमति अस्वीकार की गई लाइन 3

     

चेतावनी: move_uploaded_file() [function.move-upload-file]: E: \ inetpub \ vhosts \ mywebsite में 'c: \ WINDOWS \ Temp \ phpA30E.tmp' को './test.txt' में स्थानांतरित करने में असमर्थ लाइन 3 पर .com \ httpdocs \ dump \ upload.php

     

चेतावनी: हेडर जानकारी संशोधित नहीं कर सकता - हेडर पहले से भेजे गए हैं (आउटपुट ई: \ inetpub \ vhosts \ mywebsite.com \ httpdocs \ dump \ upload.php: 3) में शुरू हुआ: ई में \ inetpub \ vhosts \ mywebsite.com लाइन 4 पर \ httpdocs \ dump \ upload.php

PHP संस्करण 4.4.7 एक विंडोज बॉक्स पर आईआईएस चल रहा है। इस विशेष फ़ाइल / फ़ोल्डर में 777 अनुमतियां हैं।

कोई विचार?

0
जोड़ा संपादित
विचारों: 1

7 उत्तर

पथ जोड़ने का प्रयास करें। निम्नलिखित कोड मेरे लिए काम करता है:

<?php

if ( !empty($_FILES['file']) ) {
    $from = $_FILES['file']['tmp_name'];
    $to = dirname(__FILE__).'/'.$_FILES['file']['name'];

    if( move_uploaded_file($from, $to) ){
        echo 'Success';   
    } else {
        echo 'Failure';   
    }

    header('Location: http://www.mywebsite.com/dump/');
    exit;
}
?>
0
जोड़ा

जैसा कि यह विंडोज है, कोई वास्तविक 777 नहीं है। यदि आप chmod , विंडोज से संबंधित टिप्पणियों की जांच करें।

जांचें कि आईआईएस खाता इन दो फ़ोल्डरों तक पहुंच (पढ़ना, लिखना, संशोधित) कर सकता है:

E:\inetpub\vhosts\mywebsite.com\httpdocs\dump\
C:\WINDOWS\Temp\
0
जोड़ा

चेतावनी: move_uploaded_file() [function.move-upload-file]: E: \ inetpub \ vhosts \ mywebsite.com में 'c: \ WINDOWS \ Temp \ phpA30E.tmp' को './people.xml' में स्थानांतरित करने में असमर्थ \ लाइन 3 पर httpdocs \ dump \ upload.php

यह महत्वपूर्ण पंक्ति है जो कहती है कि आप उस फ़ाइल को नहीं डाल सकते जहां आप इसे चाहते हैं और इसका सामान्य रूप से अनुमति समस्या है

ऐप चलाने वाली प्रक्रिया की जांच करें (आमतौर पर PHP के लिए वेबसर्वर प्रक्रिया) को वहां फ़ाइल लिखने का अधिकार है।

संपादित करें:

थोड़ा सा लटकाओ मैंने बंदूक कूद दी, पहली पंक्ति में फाइल का रास्ता थोड़ा सही है?

0
जोड़ा

हे भगवान

move_uploaded_file($_FILES['file']['tmp_name'], './' . $_FILES['file']['name']);

ऐसा मत करो। $ _ FILES ['file'] ['name'] ../../../../ boot.ini या किसी भी बुरी चीजें हो सकती है। आपको इस नाम पर भरोसा नहीं करना चाहिए। आपको फ़ाइल को किसी अन्य चीज़ का नाम बदलना चाहिए और मूल नाम को अपने यादृच्छिक नाम से जोड़ना चाहिए। न्यूनतम उपयोग बेसनाम ($ _ FILES ['file'] ['name']) पर।

0
जोड़ा

एक और विचार है कि आपका निर्देशिका विभाजक है, आप विंडोज बॉक्स में / उपयोग कर रहे हैं ..

0
जोड़ा

IIS उपयोगकर्ता को 'डंप' फ़ोल्डर सुरक्षा सुरक्षा समूह में जोड़ें, और इसे पढ़ने / लिखने का उपयोग दें।

0
जोड़ा

Create a folder named "image" with folder permission 777

<?php
    move_uploaded_file($_FILES['file']['tmp_name'],"image/".$_FILES['file']['name']);
?>
0
जोड़ा