باphp بسادگي ميتوان فايلي را در سرور بارگذاري كرد .بار گذاري در منطقه اي انجام ميشود كه آدرس آن قابل شناسائي سرور باشد. همچنين ممكن است بسادگي در بارگذاري مشكل پيش آيد، كه بايد مراقب باشيد.
در مرحله اول بايد مطمئن باشيد كه اجازه بارگذاري را داريد .براي مجوز بايد در فايل"php.ini" عبارتfile_uploads راجستجو نمائيد، آن مطابق زير بايد onباشد .
مرحله بعدي فرم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>
بعضي از قوانين كه در فرم بارگذاري بايد رعايت شود، مطابق زيراست.
- 1مطمئن شويد كه درفرم ازمتد"post"استفاده شده است .يعني بايدmethod= "post"
2ـ در فرم لازم است كه ويژگيenctype بصورتenctype="multipart/form-data" باشد، كه مشخص كننده نوع محتوي اطلاعاتي است كه بايدsubmit شود .
بدون رعايت موارد بالا بار گذاري امكان پذير نميباشد.
نكته ديگري كه بايد ذكر شود اينستكه،ويژگيtype براي تگ input بصورت
type="file"بوده واين نشانه انتخاب فايل از طريق
فرم بالا اطلاعات را به برنامه"upload.php"كددر فرم بصورت action="upload.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" - 1دايركتوري فايلي كه بايد قرار بگيرد ،يا مقصد بارگذاري فايل
2ـ $target_file مشخص كنندهpath فايلي كه بار گذاري ميشود .يعني مبدا فايل
3ـ$uploadOk=1 اكنون مورد استفاده نيست ولي بعدا استفاده ميشود.
4ـ$imageFileType نگهدارندهextention فايل تصويربا حروف كوچك
5ـ بعدا كنترل ميشود كه تصوير واقعي است يا جعلي
نكته ـ لازم است كه دايركتوري با نام"uploads"در همان محلي كه اسكريپت "upload.php"قرار دارد،ايجاد كنيد .فايل بارگذاري دراين محل ذخيره ميشود .
براي كامل شدن اسكريپت بارگذاري اكنون ميتوان محدويت هائي درآن قرار داد. در مرحله اول وجود فايل بارگذاري دردايركتوري"uploads"كنترل ميشود، در صورت وجود پيغامي صادر ميشود، و$uploadOk=0 ميگردد. دستورات كنترلي فوق مطابق زيراست.
// Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; }
ويژگيname در تگ input براي بارگذاري "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 $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."; } } ?>