Thứ Bảy, 5 tháng 1, 2019

Khóa học lập trình PHP - PHP - Tải lên tập tin

Tải lên tệp là một trong những tính năng được sử dụng phổ biến nhất trong lập trình biểu mẫu. Khóa học lập trình PHP cung cấp một lớp đặc biệt, Tải lên để xử lý tải lên các tệp. Hãy cùng chúng tôi tìm hiểu cách tải lên tệp bằng lớp Tải lên trong chương này.

Cấu hình


Lớp tải lên có thể được cấu hình bằng tệp cấu hình riêng biệt, Fuel / app / config / upload.php . Các mục cấu hình quan trọng như sau.

Khóa học lập trình PHP
Khóa học lập trình PHP

max_size - Đặt kích thước tối đa của tệp sẽ được tải lên. 1 0 đề cập đến kích thước tải lên không giới hạn

ext_whlistist - Đặt tiện ích mở rộng tệp được phép

ext_blacklist - Đặt phần mở rộng tệp không được phép

type_whlistist - Đặt loại tệp được phép. Ví dụ: văn bản và văn bản khác cho loại văn bản

type_blacklist - Đặt loại tệp không được phép

mime_whlistist - Đặt loại tệp mime được phép. Ví dụ: văn bản / đơn giản

mime_blacklist - Đặt loại tệp mime không được phép

tiền tố - Chuỗi thành tiền tố trong tên tệp trong khi lưu tệp đã tải lên máy chủ

hậu tố - Chuỗi hậu tố trong tên tệp trong khi lưu tệp đã tải lên máy chủ

tiện ích mở rộng - Phần mở rộng của tệp đã tải lên sẽ được đặt

create_path - Có tạo đường dẫn tệp hay không, nếu không có sẵn

ghi đè - Có ghi đè tệp hiện có trong khi lưu tệp đã tải lên không

auto_rename - Có nên đổi tên tệp bằng cách thêm số thứ tự trong khi lưu tệp đã tải lên

Randomize - Có tạo tên 32 ký tự ngẫu nhiên để lưu tệp đã tải lên không

Phương thức tải lên


Khóa học lập trình PHP Lớp tải lên cung cấp các tùy chọn để xử lý và lưu tệp được tải lên bởi người dùng. Mỗi tệp được xử lý (trước khi lưu) sẽ có thông tin sau trong mảng kết quả.

trường - Tên của trường biểu mẫu

Tên - Tên của tệp được tải lên

loại - Loại tệp theo định nghĩa của trình duyệt

mimetype - Loại tệp như được định nghĩa bởi lớp Tải lên

tệp - Tên đủ điều kiện của vị trí tạm thời của tệp được tải lên

tên tệp - Tên tệp của tệp đã tải lên

tiện ích mở rộng - Gia hạn tệp đã tải lên

kích thước - Kích thước của tệp được tải lên theo byte

lỗi - Mảng lỗi có mã lỗi và thông báo

lỗi - Có đặt lỗi mảng với lý do tải lên không (trong trường hợp không tải lên được)

Khi các tệp được lưu trong máy chủ, mảng kết quả cũng sẽ có các thông tin sau.

save_to - Đường dẫn đủ điều kiện nơi tệp đã tải lên được lưu

yet_as - Tên của tệp đã được lưu

lỗi - Mảng lỗi cập nhật

Khóa học lập trình PHP Bây giờ, chúng ta hãy xem phương thức của lớp Upload.

is_valid

is_valid trả về true, nếu bất kỳ tệp hợp lệ nào được người dùng tải lên.
// do we have any uploaded files to save? 
if (Upload::is_valid()) { 
   // process  
} 

get_files

Khóa học lập trình PHP get_files trả về tất cả các tệp được tải lên dưới dạng mảng đa chiều. Nếu một chỉ mục / tên của đầu vào tệp của biểu mẫu được chỉ định, thì nó sẽ trả về tệp đã tải lên chỉ liên quan đến đầu vào tệp được chỉ định.
foreach(Upload::get_files() as $file) { 
   // do something with the file info 
}  
if ( Upload::get_files(0)) { 
   // do something 
}

get_errors

Khóa học lập trình PHP get_errors trả về một mảng lỗi, nếu không tải lên được một hoặc nhiều tệp. Nếu một chỉ mục / tên của tên đầu vào tệp của biểu mẫu được chỉ định, thì nó sẽ chỉ trả về lỗi liên quan đến đầu vào tệp được chỉ định.
foreach(Upload::get_errors() as $file) { 
   // do something with the file info 
}  
if (Upload::get_errors('myimage')) { 
   // do something 
} 

Quá trình

Khóa học lập trình PHP quá trình đề cập đến quá trình thực tế thu thập thông tin về tệp được tải lên. Chúng tôi có thể cung cấp một cấu hình tùy chỉnh mới bằng cách sử dụng mảng. Nếu không có cấu hình nào được chỉ định, thì nó sẽ sử dụng cấu hình được xác định trong Fuel / app / config / upload.php
Upload::process (array( 
   'auto_rename' => false, 
   'overwrite'   => true 
));

tiết kiệm

Khóa học lập trình PHP save đề cập đến quá trình thực tế lưu tất cả các tệp được xác thực ở một vị trí thích hợp. Chúng tôi có thể chỉ định chỉ mục để lưu chỉ mục cụ thể đó.
Upload::save();
Upload::save(0);
Upload::save(0, 3); 

Ví dụ làm việc

Khóa học lập trình PHP Hãy để chúng tôi tạo một bộ điều khiển mới, Controller_Upload trong mẫu nhân viên của chúng tôi để kiểm tra chức năng tải lên.

Bước 1 - Tạo một tệp, nhiên liệu / ứng dụng / lớp / trình điều khiển / upload.php . Tạo bộ điều khiển tải lên.
<?php 
   class Controller_Upload extends Controller { 
   }
Bước 2 - Tạo một hành động mới get_upload.
<?php  
   class Controller_Upload extends Controller { 
      public function get_index() { 
         return \View::forge("upload/index"); 
      } 
   }
Bước 3 - Tạo chế độ xem mới cho hành động được tạo.
<!DOCTYPE html> 
<html> 
   <body> 
   
      <form action = "/upload/index" 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> 
Bước 4 - Tạo một hành động mới post_action để xử lý tệp đã tải lên.
<?php  
   class Controller_Upload extends Controller { 
      public function get_index() { 
         return \View::forge("upload/index"); 
      }  
      public function post_index(){ 
         $config = array( 
            'path' => DOCROOT.'files', 
            'randomize' => true, 
            'ext_whitelist' => array('img', 'jpg', 'jpeg', 'gif', 'png'), 
         );  
         Upload::process($config);  
         // if there are any valid files 
         
         if (Upload::is_valid()) { 
            Upload::save(); 
            echo "success"; 
         } else { 
            // and process any errors 
            foreach (Upload::get_errors() as $file) { 
               echo var_dump($file); 
            } 
         } 
      } 
   }      

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...