Thứ Bảy, 2 tháng 3, 2019

Đào tạo PHP - PHP - Tải lên tệp

Tập lệnh Đào tạo lập trình PHP có thể được sử dụng với biểu mẫu HTML để cho phép người dùng tải tệp lên máy chủ. Ban đầu các tệp được tải lên một thư mục tạm thời và sau đó được chuyển đến đích đích bằng một tập lệnh PHP.

Thông tin trong trang phpinfo.php mô tả thư mục tạm thời được sử dụng để tải lên tệp là upload_tmp_dir và kích thước tối đa được phép của các tệp có thể được tải lên được nêu là upload_max_filesize . Các tham số này được đặt vào tệp cấu hình PHP php.ini

Quá trình tải lên một tệp theo các bước sau


Người dùng mở trang chứa biểu mẫu HTML có tệp văn bản, nút duyệt và nút gửi.

Người dùng nhấp vào nút duyệt và chọn một tệp để tải lên từ PC cục bộ.

Học lập trình PHP chuyên nghiệp
Học lập trình PHP chuyên nghiệp

Đường dẫn đầy đủ đến tệp đã chọn xuất hiện trong văn bản được gửi sau đó người dùng nhấp vào nút gửi.

Các tập tin đã chọn được gửi đến thư mục tạm thời trên máy chủ.

Tập lệnh Đào tạo lập trình PHP được chỉ định làm trình xử lý biểu mẫu trong thuộc tính hành động của biểu mẫu kiểm tra xem tệp đã đến và sau đó sao chép tệp vào một thư mục dự định.

Kịch bản PHP xác nhận sự thành công cho người dùng.

Như thường lệ khi ghi tệp, cả hai vị trí tạm thời và cuối cùng đều phải có quyền cho phép ghi tệp. Nếu một trong hai được đặt thành chỉ đọc thì quá trình sẽ thất bại.

Tệp được tải lên có thể là tệp văn bản hoặc tệp hình ảnh hoặc bất kỳ tài liệu nào.

Tạo một hình thức tải lên


Mã HTM sau đây tạo biểu mẫu tải lên. Biểu mẫu này có thuộc tính phương thức được đặt thành bài đăng và thuộc tính enctype được đặt thành nhiều dữ liệu / biểu mẫu dữ liệu
<?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>

Nó sẽ tạo ra kết quả sau

Tạo tập lệnh tải lên

Có một biến Đào tạo lập trình PHP toàn cầu được gọi là $ _FILES . Biến này là một mảng hai chiều liên kết và giữ tất cả thông tin liên quan đến tệp được tải lên. Vì vậy, nếu giá trị được gán cho thuộc tính tên của đầu vào trong biểu mẫu tải lên là tệp , thì PHP sẽ tạo ra năm biến sau

$ _FILES ['file'] ['tmp_name'] - tệp được tải lên trong thư mục tạm thời trên máy chủ web.

$ _FILES ['file'] ['name'] - tên thật của tệp được tải lên.

$ _FILES ['file'] ['size'] - kích thước tính theo byte của tệp được tải lên.

$ _FILES ['file'] ['type'] - loại MIME của tệp được tải lên.

$ _FILES ['file'] ['error'] - mã lỗi liên quan đến tải lên tệp này.

Ví dụ dưới đây sẽ cho phép tải lên hình ảnh và trả lại kết quả như thông tin tệp đã tải lên.
<?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>

Không có nhận xét nào:

Đăng nhận xét

lập trình PHP cho các nhà phát triển PERL

Chương này sẽ liệt kê những điểm tương đồng và khác biệt chính giữa PHP và PERL. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP rất nhanh...