‎‎بارگذاري فايلPHP File Upload

Previous >    <Next  

‎باphp بسادگي ميتوان فايلي را در سرور بارگذاري كرد .بار گذاري در منطقه اي انجام ميشود كه ‎آدرس آن قابل شناسائي سرور باشد. ‎همچنين ممكن است بسادگي در بارگذاري مشكل پيش آيد، كه بايد مراقب باشيد.

‎‎فايل پيكربنديConfigure The ‎"php.ini‎"‎File

‎در مرحله اول بايد مطمئن باشيد كه اجازه بارگذاري را داريد .براي مجوز بايد در فايل‎"php.ini‎"‎ ‎عبارت‎file_uploads‎ راجستجو نمائيد، آن مطابق زير بايد onباشد .

‎‎file_uploads‎=On‎

‎‎ايجاد فرم بارگذاريCreat The HTML Form

‎مرحله بعدي فرم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‎"‎بوده واين نشانه انتخاب فايل از طريق ‎file-‎ select control‎‎و ‎brows button‎ ‎انجام ميشود .اين بخاطر امنيت اطلاعات است.

‎فرم بالا اطلاعات را به برنامه‎"upload.php‎"‎كددر فرم بصورت ‎action‎=‎"upload.php‎"‎ ‎مشخص است،ارسال مينمايد .اين برنامه مطابق زير ايجاد ميگردد.

‎‎ايجاد فايل بارگذاريCeate The Upload File PHP Script -‎

‎‎اسكريپت‎"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‎"‎قرار دارد،ايجاد كنيد .فايل بارگذاري دراين محل ذخيره ميشود .

‎‎كنترل وجودفايل بارگذاريChech if File Already Exists-‎

‎براي كامل شدن اسكريپت بارگذاري اكنون ميتوان محدويت هائي درآن قرار داد. ‎در مرحله اول وجود فايل بارگذاري دردايركتوري‎"uploads‎"‎كنترل ميشود، در صورت وجود پيغامي ‎صادر ميشود، و‎$uploadOk=0‎ ميگردد. ‎دستورات كنترلي فوق مطابق زيراست.

// Check if  file already exists
if  (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
} 

‎‎كنترل اندازه فايلLimit File Size -‎

‎ويژگي‎name‎ در تگ input براي بارگذاري ‎"fileToUpload‎"‎ميباشد .اكنون ميخواهيم ‎اندازه آن فايل را كنترل نموده واگر ازميزان500KB ‎زيادتر باشد،پيغام صادرو‎ uploadOk=0 ‎گردد .

‎‎دستورات كنترلي اندازه فايل مطابق زيراست.

// Check file size
if  ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
} 

‎‎كنترل نوع فايلLimit File Type -‎

‎اسكريپت زير اجازه بارگذاري فايل از نوع 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 بارگذاري Complete Upload File PHP Script-‎

<?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.";
  }
}
?>


Previous >    <Next