पीएचपी फ़ाइल अपलोड

PHP के द्वारा फ़ाइल को सर्वर पर अपलोड कर सकते हैं।

एक फ़ाइल अपलोड फॉर्म बनाएं

उपयोगकर्ता फॉर्म से फ़ाइल अपलोड करने की अनुमति के लिए बहुत उपयोगी है।

नीचे दिए गए फ़ाइल अपलोड के लिए HTML फॉर्म को देखें:

<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

इस फॉर्म के बारे में नीचे दिए गए जानकारी को ध्यान से देखें:

<form> टैग की enctype विशेषता फॉर्म सबमिट करते समय इस्तेमाल करने वाले सामग्री क़िस्म को निर्दिष्ट करती है। फॉर्म को द्विपदार्थ सामग्री की जरूरत होने पर जैसे कि फ़ाइल सामग्री, "multipart/form-data" का इस्तेमाल करें।

<input> टैग की type="file" विशेषता इनपुट को फ़ाइल के रूप में संसाधित करने के लिए निर्दिष्ट करती है। उदाहरण के लिए, ब्राउज़र में पूर्वदृश्य में इनपुट बॉक्स के पास एक ब्राउज़ बटन दिखाई देता है।

टिप्पणी:उपयोगकर्ता फ़ाइल अपलोड करने की अनुमति एक बड़ा सुरक्षा जोखिम है। केवल विश्वसनीय उपयोगकर्ताओं को फ़ाइल अपलोड कार्यवाही करने की अनुमति दें।

अपलोड स्क्रिप्ट बनाएं

फ़ाइल "upload_file.php" में फ़ाइल अपलोड के लिए कोड है:

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "एरर: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "स्टोर्ड इन: " . $_FILES["file"]["tmp_name"];
  }
?>

PHP के ग्लोबल अर्रे $_FILES का उपयोग करके, आप कस्टमर के कंप्यूटर से रिमोट सर्वर पर फ़ाइल अपलोड कर सकते हैं।

पहला पारामीटर फॉर्म के input name है, दूसरी निंदा "name", "type", "size", "tmp_name" या "error" हो सकती है। इस तरह देखें:

  • $_FILES["file"]["name"] - अपलोड किए गए फ़ाइल का नाम
  • $_FILES["file"]["type"] - अपलोड किए गए फ़ाइल का तरीका
  • $_FILES["file"]["size"] - अपलोड किए गए फ़ाइल का आकार, बाइटों में
  • $_FILES["file"]["tmp_name"] - सर्वर में संग्रहित फ़ाइल की अस्थायी प्रतिलिपि के नाम
  • $_FILES["file"]["error"] - फ़ाइल अपलोड के कारण होने वाले एरर कोड

यह एक बहुत ही सरल फ़ाइल अपलोड का तरीका है। सुरक्षा के लिए कारणों से, आपको उन उपयोगकर्ताओं के बारे में सीमा बढ़ानी चाहिए जो फ़ाइल अपलोड कर सकते हैं。

अपलोड सीमा

इस स्क्रिप्ट में हमने फ़ाइल अपलोड की सीमा को बढ़ाया है। उपयोगकर्ता केवल .gif या .jpeg फ़ाइलों को अपलोड कर सकते हैं, फ़ाइल का आकार 20 kb से कम होना चाहिए:

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "एरर: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "स्टोर्ड इन: " . $_FILES["file"]["tmp_name"];
    }
  }
else
  {
  echo "Invalid file";
  }
?>

टिप्पणी:IE के लिए jpg फ़ाइल के तरीके को pjpeg होना चाहिए, Firefox के लिए jpeg होना चाहिए。

अपलोड किए गए फ़ाइल को सहेजना

ऊपरी उदाहरण सर्वर के PHP अस्थायी फ़ोल्डर में एक अपलोड किए गए फ़ाइल की अस्थायी प्रतिलिपि बनाता है。

यह अस्थायी प्रतिलिपि शुटिंग समाप्त होने पर मिट जाएगी। अपलोड किए गए फ़ाइल को सहेजने के लिए हमें इसे दूसरी स्थिति में कॉपी करना होगा:

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    एचेको "रिटर्न कोड: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>

ऊपरी स्क्रिप्ट इस फ़ाइल के अस्तित्व की जाँच करता है, अगर नहीं मिला तो फ़ाइल को निर्दिष्ट फ़ोल्डर में कॉपी कर देता है。

टिप्पणी:इस उदाहरण में फ़ाइल "upload" नामक नई फ़ोल्डर में सहेजी गई।