القائمة الرئيسية

الصفحات

 PHP - File Uploading

A PHP script can be used with a HTML form to allow users to upload files to the server. Initially files are uploaded into a temporary directory and then relocated to a target destination by a PHP script.

Information in the phpinfo.php page describes the temporary directory that is used for file uploads as upload_tmp_dir and the maximum permitted size of files that can be uploaded is stated as upload_max_filesize. These parameters are set into PHP configuration file php.ini

يمكن استخدام نص PHP مع نموذج HTML للسماح للمستخدمين بتحميل الملفات على الخادم. في البداية يتم تحميل الملفات إلى دليل مؤقت ثم يتم نقلها إلى الوجهة المستهدفة بواسطة برنامج نصي PHP. تصف المعلومات الموجودة في صفحة phpinfo.php الدليل المؤقت المستخدم لتحميلات الملفات مثل upload_tmp_dir والحد الأقصى المسموح به لحجم الملفات التي يمكن تحميلها يُذكر على أنه upload_max_filesize. يتم تعيين هذه المعلمات في ملف تكوين PHP php.ini




The process of uploading a file follows these steps −

  • The user opens the page containing a HTML form featuring a text files, a browse button and a submit button.
  • The user clicks the browse button and selects a file to upload from the local PC.
  • The full path to the selected file appears in the text filed then the user clicks the submit button.
  • The selected file is sent to the temporary directory on the server.
  • The PHP script that was specified as the form handler in the form's action attribute checks that the file has arrived and then copies the file into an intended directory.
  • The PHP script confirms the success to the user.
يفتح المستخدم الصفحة التي تحتوي على نموذج HTML يضم ملفات نصية وزر تصفح وزر إرسال. ينقر المستخدم على زر التصفح ويختار ملفًا للتحميل من جهاز الكمبيوتر المحلي. يظهر المسار الكامل للملف المحدد في النص المودع ثم ينقر المستخدم على زر الإرسال. يتم إرسال الملف المحدد إلى الدليل المؤقت على الخادم. يتحقق البرنامج النصي PHP الذي تم تحديده كمعالج النموذج في سمة الإجراء الخاصة بالنموذج من وصول الملف ثم نسخ الملف إلى الدليل المقصود. يؤكد سكربت PHP نجاح المستخدم.

As usual when writing files it is necessary for both temporary and final locations to have permissions set that enable file writing. If either is set to be read-only then process will fail.

An uploaded file could be a text file or image file or any document.

كالعادة عند كتابة الملفات ، من الضروري لكل من المواقع المؤقتة والنهائية تعيين أذونات تمكن من كتابة الملف. إذا تم تعيين أي منهما للقراءة فقط ، فستفشل العملية. يمكن أن يكون الملف الذي تم تحميله ملفًا نصيًا أو ملف صورة أو أي مستند.

Creating an upload form

The following HTM code below creates an uploader form. This form is having method attribute set to post and enctype attribute is set to multipart/form-data

إنشاء نموذج تحميل يقوم رمز HTM التالي أدناه بإنشاء نموذج رافع. يحتوي هذا النموذج على سمة أسلوب معينة للنشر ويتم تعيين سمة enctype على عدة أجزاء




<?php
   if(isset($_FILES['image'])){
      $errors= array();
      $file_name = $_FILES['image']['name'];
      $file_size =$_FILES['image']['size'];
      $file_tmp =$_FILES['image']['tmp_name'];
      $file_type=$_FILES['image']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
      
      $extensions= array("jpeg","jpg","png");
      
      if(in_array($file_ext,$extensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }
      
      if($file_size > 2097152){
         $errors[]='File size must be excately 2 MB';
      }
      
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,"images/".$file_name);
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>
<html>
   <body>
      
      <form action="" method="POST" enctype="multipart/form-data">
         <input type="file" name="image" />
         <input type="submit"/>
      </form>
      
   </body>
</html>

It will produce the following result −

Upload Form

Creating an upload script

There is one global PHP variable called $_FILES. This variable is an associate double dimension array and keeps all the information related to uploaded file. So if the value assigned to the input's name attribute in uploading form was file, then PHP would create following five variables −

إنشاء برنامج نصي للتحميل يوجد متغير PHP عالمي واحد يسمى $ _FILES. هذا المتغير عبارة عن مصفوفة ثنائية الأبعاد مرتبطة ويحافظ على جميع المعلومات المتعلقة بالملف الذي تم تحميله. لذلك إذا كانت القيمة المعينة لسمة اسم الإدخال في نموذج التحميل هي ملف ، فإن PHP ستنشئ المتغيرات الخمسة التالية -

  • $_FILES['file']['tmp_name'] − the uploaded file in the temporary directory on the web server.
  • $_FILES['file']['name'] − the actual name of the uploaded file.
  • $_FILES['file']['size'] − the size in bytes of the uploaded file.
  • $_FILES['file']['type'] − the MIME type of the uploaded file.
  • $_FILES['file']['error'] − the error code associated with this file upload.

Example

Below example should allow upload images and gives back result as uploaded file information.

المثال أدناه يجب أن يسمح المثال أدناه بتحميل الصور ويعطي النتيجة كمعلومات ملف تم تحميلها.




<?php
   if(isset($_FILES['image'])){
      $errors= array();
      $file_name = $_FILES['image']['name'];
      $file_size = $_FILES['image']['size'];
      $file_tmp = $_FILES['image']['tmp_name'];
      $file_type = $_FILES['image']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
      
      $extensions= array("jpeg","jpg","png");
      
      if(in_array($file_ext,$extensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }
      
      if($file_size > 2097152) {
         $errors[]='File size must be excately 2 MB';
      }
      
      if(empty($errors)==true) {
         move_uploaded_file($file_tmp,"images/".$file_name);
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>
<html>
   <body>
      
      <form action = "" method = "POST" enctype = "multipart/form-data">
         <input type = "file" name = "image" />
         <input type = "submit"/>
			
         <ul>
            <li>Sent file: <?php echo $_FILES['image']['name'];  ?>
            <li>File size: <?php echo $_FILES['image']['size'];  ?>
            <li>File type: <?php echo $_FILES['image']['type'] ?>
         </ul>
			
      </form>
      
   </body>
</html>

It will produce the following result −النتيجة هذه

Upload Script

هل اعجبك الموضوع :

تعليقات