Chúng tôi có thể tải tệp lên bằng php không?

Tải lên tệp là một nhiệm vụ phổ biến cho các ứng dụng web. Các loại tệp khác nhau được yêu cầu tải lên dựa trên ứng dụng. Tệp hình ảnh, tệp văn bản, tệp pdf, tệp XML, v.v. có thể được tải lên bằng cách sử dụng tập lệnh PHP. Một hoặc nhiều tệp có thể được tải lên bằng PHP. Có một số chỉ thị PHP trong php. ini và các hàm tích hợp PHP liên quan đến tải lên tệp được thảo luận trong hướng dẫn này. HTML có một thuộc tính cụ thể trong thẻ biểu mẫu cho các tác vụ tải tệp lên, đó là enctype

Show

Chỉ thị PHP để tải lên tệp

Mục đích của Chỉ thị PHP file_uploads Giá trị của chỉ thị này phải là Bật để tải tệp lên bằng cách sử dụng tập lệnh PHP. Giá trị mặc định của lệnh này là Bật. upload_tmp_dirNó được sử dụng để đặt thư mục tạm thời nơi tệp sẽ được tải lên. upload_max_filesizeĐược sử dụng để đặt kích thước tối đa của tệp có thể được tải lên. max_file_uploads Nó được sử dụng để đặt số lượng tệp có thể được tải lên. post_max_sizeNó được sử dụng để đặt kích thước tối đa của dữ liệu POST và giá trị của lệnh này phải lớn hơn giá trị của lệnh upload_max_filesize vì tệp được tải lên theo yêu cầu POST. max_input_timeĐược sử dụng để đặt lượng thời gian tối đa để đọc dữ liệu của tệp tải lên. max_execution_timeĐược sử dụng để đặt lượng thời gian tối đa tính bằng giây để thực thi tập lệnh tải tệp lên. memory_limitNó được sử dụng để đặt kích thước bộ nhớ tối đa cần thiết để thực thi tập lệnh PHP để tải tệp lên

Các hàm PHP để tải lên tệp

Hai chức năng tích hợp chủ yếu được sử dụng trong PHP để tải lên tệp được đề cập bên dưới

A. is_uploaded_file()
Được sử dụng để kiểm tra xem tệp có được tải lên qua HTTP POST hay không, giúp ngăn chặn cuộc tấn công từ người dùng độc hại.

B. move_uploaded_file()
Được sử dụng để di chuyển tệp đã tải lên vào vị trí máy chủ web. Hàm này sẽ trả về giá trị true nếu tệp được tải lên và di chuyển thành công.

Biến tải lên tệp PHP

Biến mảng $_FILES lưu trữ tất cả thông tin liên quan đến việc tải tệp lên máy chủ. Nó là một biến siêu toàn cầu của PHP có thể truy cập được ở bất kỳ đâu từ tập lệnh. Nó chứa năm loại thông tin. tên tệp, loại, kích thước, tên tệp tạm thời và các lỗi liên quan đến việc tải tệp lên. Mục đích của từng giá trị của mảng $_FILE đã được đề cập bên dưới. Giả sử tên của tên trường tải lên là 'tải lên' ở đây

A. $_FILES[‘upload’][‘name’]
Được sử dụng để lấy tên tệp gốc đã được tải lên bởi máy tính của khách hàng.

B. $_FILES[‘upload’][‘tmp_name’]
Được sử dụng để lấy tên tệp tạm thời đã được lưu trữ tạm thời trong máy chủ.

C. $_FILES[‘upload’][‘type’]
Được sử dụng để lấy loại mime của tệp đã tải lên.

D. $_FILES[‘upload’][‘size’]
Được sử dụng để lấy kích thước của tệp được tải lên theo byte.

E. $_FILES[‘upload’][‘error’]
Được sử dụng để lấy mã lỗi liên quan đến tác vụ tải lên. Biến có thể chứa bất kỳ loại nào trong số 7 loại giá trị được đề cập bên dưới.

Mã lỗi Mô tả1- UPLOAD_ERR_OKNó tạo ra khi tệp tải lên thành công. 2- UPLOAD_ERR_INI_SIZEIt tạo ra nếu kích thước tệp vượt quá giá trị của chỉ thị upload_max_filesize được xác định trong php. tập tin ini. 3- UPLOAD_ERR_PARTIALNó tạo ra nếu kích thước tệp vượt quá giá trị của lệnh MAX_FILE_SIZE được xác định trong Biểu mẫu HTML. 4- UPLOAD_ERR_NO_FILENó tạo nếu không có tệp nào được tải lên. 5- UPLOAD_ERR_NO_TMP_DIRIt được tạo nếu không có thư mục tạm thời nào bị thiếu. 6- UPLOAD_ERR_CANT_WRITENó tạo nếu không có quyền ghi ở vị trí máy chủ. 7- UPLOAD_ERR_EXTENSIONNó tạo ra nếu tiện ích mở rộng PHP dừng tác vụ tải lên

Tải lên tệp bằng PHP

Các ví dụ khác nhau về cách tải tệp lên bằng cách sử dụng tập lệnh PHP đã được trình bày trong phần này của hướng dẫn

ví dụ 1. Tải lên bất kỳ loại tệp nào

Bạn có thể tải tệp lên ở vị trí hiện tại từ nơi tập lệnh PHP đang thực thi hoặc trong một thư mục cụ thể. Bạn phải tạo thư mục ở vị trí máy chủ để tải tệp lên trong một thư mục cụ thể trước khi thực thi tập lệnh PHP. Tôi đã tạo một thư mục có tên 'tải lên' bên trong thư mục làm việc. Tạo tệp PHP với tập lệnh sau sẽ tải lên tệp thuộc bất kỳ loại nào trong thư mục 'tải lên'. Biểu mẫu HTML có trường loại tệp và nút gửi đã được sử dụng trong tập lệnh để chọn tệp từ máy tính của khách hàng để tải lên. Nếu 1 được tạo dưới dạng mã lỗi sau khi tải tệp lên, thì tệp đã được tải lên thành công. Tiếp theo, hàm move_upload_file() đã được sử dụng để di chuyển tệp đã tải lên đến vị trí máy chủ. Thông báo thành công sẽ được in nếu tệp được tải lên vị trí máy chủ thành công;

< ?php

//Kiểm tra tệp bất kỳ< . is selected or not
if (isset($_FILES['uploadFile']))
{
   //Check any uploading error exists or not
   if ($_FILES['uploadFile']['error'] === UPLOAD_ERR_OK)
   {
     //Read the original filename
     $fileName = $_FILES['uploadFile']['name'];
     //Read temporary filename
     $fileTempPath = $_FILES['uploadFile']['tmp_name'];
 
     //Set the uploading file path
     $filePath = dirname(__FILE__).'/uploads/' . $fileName ;

     //Tải tệp bằng cách sử dụng move_upload_file () function
     if(move_uploaded_file($fileTempPath, $filePath))
     {
       //Print the success message
       echo '

File is uploaded successfully.

';
      }
      else
     {
       //Print the error message
       echo '

Error uploading the file.' . $_FILES ['uploadFile']['error']. '';      }  }  else  {     //Print the error message     echo 'Error uploading the file.' . $_FILES ['uploadFile']['error']. '';    }}else{?> -- Hiển thị biểu mẫu tải lên -- >                        Uploading file using PHP                            Select File:

Cách tải tệp lên bằng tệp HTML và tệp PHP riêng biệt đã được hiển thị trong ví dụ này. Tạo một tệp HTML với tập lệnh sau để hiển thị biểu mẫu để tải tệp lên

tải lên biểu mẫu. html


< html >
    <body>
        <div style = "text-align: center;" >
            < h3>Uploading JPEG file using PHP</h3>
                <form action="#" method="POST" enctype="multipart/form-data">
                    Select File: < đầu vào loại=" name="uploadFile" />
                    <input type="submit" value="Upload" />
                </form>
            </div>
    </body
</html>

Tạo tập lệnh PHP với tập lệnh sau sẽ chỉ tải lên tệp JPEG và kích thước sẽ nhỏ hơn 300000 byte. Loại và kích thước tệp đã được đọc bằng cách sử dụng các biến $_FILES[‘uploadFile’][‘type’] và $_FILES[‘uploadFile’][‘size’]. Thông báo thành công sẽ xuất hiện nếu loại và kích thước tệp đã tải lên phù hợp với tiêu chí được xác định trong điều kiện 'nếu';

tải lên2. php

?php

//Kiểm tra xem có tệp nào được chọn hay không
if ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . isset($_FILES['uploadFile']))
{
   //Check any uploading error exists or not
   if ($_FILES['uploadFile']['error'] === UPLOAD_ERR_OK)
   {
      //Read the original filename
      $fileName = $_FILES['uploadFile']['name'];
      //Read temporary filename
      $fileTempPath = $_FILES['uploadFile']['tmp_name'];
      //Read the file size
      $fileSize = $_FILES['uploadFile']['size'];
      //Read the file type
      $fileType = $_FILES['uploadFile']['type'];
 
      //Check the file type and the file size
      if ($fileType == 'image/jpeg' && $fileSize < 300000)
      {
         //Set the uploading file path
         $filePath = dirname(__FILE__).'/uploads/'. $fileName;
 
          // . center">Tệp được tải lên thành công. '
         if(move_uploaded_file($fileTempPath, $filePath))
         {
            //Print the success message
            echo '

File is uploaded successfully.

'
;
          }
          else
         {
            //Print the error message
           echo '

Error uploading the file.'. $_FILES['uploadFile']['error']. '';        }     }     else        //Print the error message        echo 'File type or size is not supported.

'
;
    }
    else
   {
      //Print the error message
      echo '

Error uploading the file.'. $_FILES['uploadFile']['error']. '';    }   include('uploadForm.html');}else   include('uploadForm.html');?>Đầu raTrong đầu ra sau, bông hoa. tệp png đã được chọn không phải là tệp JPEG. Đầu ra sau sẽ xuất hiện sau khi nhấn nút Tải lênHoa đây 1. tệp jpeg đã được chọn là tệp JPEG (adsbygoogle = window.adsbygoogle || []).push({}); Bây giờ, đầu ra sau sẽ xuất hiện sau khi nhấn nút Tải lênví dụ 3. Kiểm tra tệp trước khi tải lên

Tạo tệp PHP với tập lệnh sau sử dụng hàm is_uploaded_file() để kiểm tra xem tệp có được tải lên qua HTTP POST hay không trước khi di chuyển tệp đến máy chủ. Tập lệnh sẽ chỉ tải lên tệp văn bản và in nội dung của tệp văn bản sau khi tải tệp lên thành công

?php

//Kiểm tra xem có tệp nào được chọn hay không
if (isset($_FILES['uploadFile']))
{
   //Read the original filename
   $fileName = $_FILES['uploadFile']['name'];
   //Read temporary filename
   $fileTempPath = $_FILES['uploadFile']['tmp_name'];
   //Read the file type
   $fileType = $_FILES['uploadFile']['type'];
   //Set the uploading file path
   $filePath = dirname(__FILE__).'/uploads/'. $fileName;
    //Kiểm tra loại tệp< . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < . < .
   if ($fileType == 'text/plain')
   {
      //Check any uploading error exists or not
      if ($_FILES['uploadFile']['error'] === UPLOAD_ERR_OK)
      {
         if (is_uploaded_file($fileTempPath)) {
           //Upload the file using move_upload_file() function
           if(move_uploaded_file($fileTempPath, $filePath))
           {
              //Print the success message
              echo $fileName ." đã được tải lên thành công. """""""""""""""""""""""""""""""""""""""""""";
              echo "Nội dung của tệp. """""""""""""""""""""""""""""""""""""""""""";
              tệp đã đọc($filePath);

           }
           else
           {
              echo 'Error uploading the file.
'
. $_FILES['uploadFile']['error'];
           }
        }
        else {
           echo "File is not uploaded.";
        }
      }< . "
   }
   else
     echo "File is not a text file.";
}
khác
{

. --



      <html>
        <body>
            <div style = "text-align: center;">
                  < h3 >Uploading file using PHPh3>
                <form action="#" method="POST" enctype="multipart/form-data">
                    Select File: < loại đầu vào ="tệp" name="uploadFile" />
                    <input type="submit" value="Upload" />
                form>
            div>
        body
html>



}

Đầu ra
Trong đầu ra sau, một tệp văn bản đã được chọn để tải lên.

Chúng tôi có thể tải tệp lên bằng php không?

Nội dung của tệp đã được hiển thị trong đầu ra sau khi tải tệp lên thành công

Chúng tôi có thể tải tệp lên bằng php không?

Phần kết luận

Tác vụ tải tệp lên là một yêu cầu phổ biến đối với bất kỳ ứng dụng web nào. Việc sử dụng biến tải lên tệp và các chức năng tích hợp sẵn của PHP đã được trình bày trong hướng dẫn này bằng cách sử dụng nhiều ví dụ về tải lên tệp. Nếu muốn, bạn có thể tải lên nhiều tệp cùng lúc bằng cách sử dụng tập lệnh PHP được trình bày trong hướng dẫn này. Bạn cũng có thể tải lên một thư mục chứa nhiều tệp bằng cách sử dụng tập lệnh PHP

PHP tải tệp lên ở đâu?

Theo mặc định, các tệp sẽ được lưu trữ trong thư mục tạm thời mặc định của máy chủ , trừ khi một vị trí khác đã được cung cấp với chỉ thị upload_tmp_dir trong php. ban đầu. Có thể thay đổi thư mục mặc định của máy chủ bằng cách đặt biến môi trường TMPDIR trong môi trường mà PHP chạy.

Làm cách nào để tải lên tệp PDF bằng PHP?

Hàm move_uploaded_file() dùng để upload file pdf lên server. Chúng tôi đang chuyển 2 giá trị, tên tệp tạm thời và thư mục nơi tệp sẽ được lưu trữ. Các tệp sẽ được lưu trữ trong thư mục “GeeksForGeeks/pdf/” mà chúng tôi đã tạo trước đó

PHP có thể tải lên bao nhiêu tệp?

Khi bạn đang làm việc với nhiều tệp tải lên trong PHP, cần phải tăng số lượng tệp tối đa để tải lên. Theo mặc định, bạn có thể tải lên 20 tệp thông qua một yêu cầu duy nhất . Nếu bạn muốn tải lên hơn 20 tệp, bạn cần sửa đổi giá trị biến max_file_uploads trong php. tập tin ini.

Kiểm soát tải lên tệp trong PHP là gì?

PHP cho phép bạn tải lên một hoặc nhiều tệp chỉ thông qua một vài dòng mã. Các tính năng tải lên tệp PHP cho phép bạn tải lên cả tệp văn bản và tệp nhị phân. Ngoài ra, bạn có thể có toàn quyền kiểm soát tệp sẽ được tải lên thông qua các chức năng vận hành tệp và xác thực PHP .