PHP में Form; file uploading की कार्यक्षमता प्रदान करता है |
Source Code :1234567891011121314151617181920212223242526272829303132333435363738394041424344454647<?php
if(isset($_POST["submit"])){
$file_name = $_FILES["image"]["name"];
$file_size =$_FILES["image"]["size"];
$file_type=$_FILES["image"]["type"];
$file_tmp =$_FILES["image"]["tmp_name"];
$ext_info = pathinfo($file_name);
$ext = $ext_info["extension"];
$exe= array("jpeg","jpg","png");
if(in_array($ext, $exe)=== false){
$error="File Format is not allowed.";
}
if (file_exists("images/".$file_name)) {
$error = "File Already Exists.";
}
if($file_size > (1*1024*1024)){
$error="Upload File less than 1 MB.";
}
if(empty($error)==true){
move_uploaded_file($file_tmp,"images/".$file_name);
echo "Successfully Uploaded.";
}else{
echo $error;
}
}
?>
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit"/>
</form>
</body>
</html>
<?php
if(isset($_POST["submit"])){
echo "File Name : ".$file_name. "<br />";
$kbsize = ceil($file_size/1024);
echo "File Size : ".$kbsize ."kb <br />";
echo "File Type : ".$file_type. "<br />";
echo "Temporary File Name : ".$file_tmp. "
";
}
?>
उपरवाले program को हिस्सों को समझ ले |
if(isset($_POST["submit"])){
$file_name = $_FILES["image"]["name"];
$file_size = $_FILES["image"]["size"];
$file_type = $_FILES["image"]["type"];
$file_tmp = $_FILES["image"]["tmp_name"];
if(isset($_POST["submit"])) : अगर ये script इस्तेमाल नहीं किया जाता तो भी चलता है | ऐसा किया जाता है तो program में चार बार undefined index : image की error आ जायेगी | बिना Error के लिए submit name को isset keyword से set किया गया है |
$file_name, $file_size, $file_type और $file_tmp इन variables में जो values दी गयी वो $_FILES के साथ दी गयी है | $_FILES ये superglobal है , जो file upload की जाती है उसकी सारी information इस Superglobal के माध्यम से रखी जाती है |
$ext_info = pathinfo($file_name);
$ext = $ext_info["extension"];
$ext_info इस variable में pathinfo() ये function लिया गया है | pathinfo() में जो path दिया जाता है, उसकी सारी information array में return की जाती है | For eg. dirname, extension, basename.
$exe= array("jpeg","jpg","png");
if(in_array($ext, $exe) === false){
$error="File Format is not allowed.";
}
जिस file के formats को upload किया जाएगा उस file formats का array दिया गया है |
in_array() इस function पर दो parameters होते है | एक में upload होनेवाले file का extension है और दुसरे में extension का array है |
upload होनेवाले file का extension और दिए हुए array से match हो जाता है तो वो अगले condition पर जाता है |
if (file_exists("images/".$file_name)) {
$error = "File Already Exists.";
}
file दिए हुए directory पर स्थित है या नहीं ये देखने के लिए ये condition ली गयी है | अगर file already exist है तो $error पर store हुआ statement display होगा |
if($file_size > (1*1024*1024)){
$error="Upload File less than 1 MB.";
यहाँ पर Upload होनेवाली वाली file सिर्फ 1MB से कम होगी |
if(empty($error)==true){
move_uploaded_file($file_tmp,"images/".$file_name);
echo "Successfully Uploaded.";
}else{
echo $error;
}
move uploaded_file() : जब web server पर upload की जानेवाली file temporary copy; temporary folder पर store होती है और move_uploaded_file() इस function से temporary uploaded file को दिए हुए directory पर permanantly store हो जाती है |
form के बारे में देखे तो,
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit"/>
</form>
File को upload करना हो तो post method की ही जरुरत पड़ती है | enctype में multipart/form-data ये file uploading के लिए इस्तेमाल किया जाता है |
form को upload करना है तो input type 'file' होगा और name 'image' गया है, इस input attribute के जरिये ही PHP से file पर operation किया जाता है |