पीएचपी फ़ाइल अपलोड
PHP के साथ, सर्वर पर फ़ाइलें अपलोड करना आसान है।
हालांकि, आसानी से खतरा आता है, इसलिए फ़ाइल अपलोड की अनुमति देते समय हमेशा सावधान रहें!
"php.ini" फ़ाइल को कॉन्फ़िगर करें
सबसे पहले, सुनिश्चित करें कि फ़ाइल अपलोड की अनुमति देने के लिए PHP को कॉन्फ़िगर किया गया है।
अपनी "php.ini" फ़ाइल में, file_uploads
निर्देश खोजें, और इसे चालू पर सेट करें:
file_uploads = On
HTML फॉर्म बनाएं
इसके बाद, एक HTML फॉर्म बनाएं जो उपयोगकर्ताओं को वह छवि फ़ाइल चुनने की अनुमति देता है जिसे वे अपलोड करना चाहते हैं:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post"
enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
ऊपर दिए गए HTML फॉर्म के लिए पालन करने के लिए कुछ नियम:
- सुनिश्चित करें कि प्रपत्र विधि = "पोस्ट" का उपयोग करता है
- प्रपत्र को निम्नलिखित विशेषता की भी आवश्यकता है: enctype="multipart/form-data"। यह निर्दिष्ट करता है कि फ़ॉर्म सबमिट करते समय किस सामग्री-प्रकार का उपयोग करना है
उपरोक्त आवश्यकताओं के बिना, फ़ाइल अपलोड काम नहीं करेगा।
ध्यान देने योग्य अन्य बातें:
- <इनपुट> टैग का प्रकार = "फ़ाइल" विशेषता इनपुट फ़ील्ड को फ़ाइल-चयन नियंत्रण के रूप में दिखाती है, इनपुट नियंत्रण के बगल में "ब्राउज़ करें" बटन के साथ
ऊपर दिया गया फॉर्म "upload.php" नामक फाइल को डेटा भेजता है, जिसे हम आगे बनाएंगे।
अपलोड फ़ाइल PHP स्क्रिप्ट बनाएँ
"upload.php" फ़ाइल में फ़ाइल अपलोड करने के लिए कोड होता है:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType =
strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
?>
PHP स्क्रिप्ट समझाया:
- $target_dir = "uploads/" - उस निर्देशिका को निर्दिष्ट करता है जहां फ़ाइल रखी जा रही है
- $target_file अपलोड की जाने वाली फ़ाइल का पथ निर्दिष्ट करता है
- $uploadOk=1 अभी तक उपयोग नहीं किया गया है (बाद में उपयोग किया जाएगा)
- $imageFileType फ़ाइल का फ़ाइल एक्सटेंशन रखता है (लोअर केस में)
- इसके बाद, जांचें कि छवि फ़ाइल वास्तविक छवि है या नकली छवि
नोट: आपको उस निर्देशिका में "अपलोड" नामक एक नई निर्देशिका बनाने की आवश्यकता होगी जहां "upload.php" फ़ाइल रहती है। अपलोड की गई फाइलें वहां सेव हो जाएंगी।
जांचें कि क्या फ़ाइल पहले से मौजूद है
अब हम कुछ प्रतिबंध जोड़ सकते हैं।
सबसे पहले, हम जांच करेंगे कि फ़ाइल "अपलोड" फ़ोल्डर में पहले से मौजूद है या नहीं। यदि ऐसा होता है, तो एक त्रुटि संदेश प्रदर्शित होता है, और $uploadOk 0 पर सेट होता है:
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
फ़ाइल का आकार सीमित करें
ऊपर हमारे एचटीएमएल फॉर्म में फ़ाइल इनपुट फ़ील्ड का नाम "fileToUpload" है।
अब, हम फ़ाइल के आकार की जांच करना चाहते हैं। यदि फ़ाइल 500KB से बड़ी है, तो एक त्रुटि संदेश प्रदर्शित होता है, और $uploadOk 0 पर सेट होता है:
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
फ़ाइल प्रकार सीमित करें
नीचे दिया गया कोड केवल उपयोगकर्ताओं को JPG, JPEG, PNG और GIF फ़ाइलें अपलोड करने की अनुमति देता है। अन्य सभी फ़ाइल प्रकार $uploadOk को 0 पर सेट करने से पहले एक त्रुटि संदेश देते हैं:
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
पूर्ण अपलोड फ़ाइल PHP स्क्रिप्ट
पूरी "upload.php" फ़ाइल अब इस तरह दिखती है:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType =
strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])).
" has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
पूर्ण PHP फाइलसिस्टम संदर्भ
फाइलसिस्टम फंक्शन के संपूर्ण संदर्भ के लिए, हमारे संपूर्ण पीएचपी फाइलसिस्टम संदर्भ पर जाएं ।