Mảng tập tin đầu vào php
Tập lệ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 tập lệnh PHP Thông tin trong phpinfo. trang php mô tả thư mục tạm thời được sử dụng để tải tệp lên là upload_tmp_dir và kích thước tệp tối đa được phép 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. ban đầu Quá trình tải lên một tệp tuân theo các bước sau -
Như thường lệ, khi ghi tệp, cả vị trí tạm thời và vị trí cuối cùng đều cần được đặt 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 biểu mẫu tải lênĐoạn mã HTML dưới đây tạo một biểu mẫu tải lên. Biểu mẫu này có thuộc tính method được đặt thành post và thuộc tính enctype được đặt thành multipart/form-data 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); } } ?> Nó sẽ tạo ra kết quả sau - Tạo tập lệnh tải lênCó một biến PHP toàn cục đượ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 đã 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 năm biến sau -
________số 8_______
Tính năng này cho phép mọi người tải lên cả tệp văn bản và tệp nhị phân. Với các chức năng xác thực và thao tác tệp của PHP, bạn có toàn quyền kiểm soát ai được phép tải lên và những gì sẽ được thực hiện với tệp sau khi tệp đã được tải lên PHP có khả năng nhận tệp tải lên từ bất kỳ trình duyệt tuân thủ RFC-1867 nào
PHP cũng hỗ trợ tải lên tệp phương thức PUT như được sử dụng bởi Netscape Composer và ứng dụng khách Amaya của W3C. Xem Hỗ trợ Phương pháp PUT để biết thêm chi tiết Ví dụ #1 Biểu mẫu tải tệp lên Có thể tạo màn hình tải lên tệp bằng cách tạo một biểu mẫu đặc biệt trông giống như thế này Send this file:
Trường ẩn
Toàn cầu $_FILES sẽ chứa tất cả thông tin tệp đã tải lên. Nội dung của nó từ mẫu ví dụ như sau. Lưu ý rằng điều này giả định việc sử dụng tệp tải lên tên tệp người dùng, như được sử dụng trong tập lệnh ví dụ ở trên. Đây có thể là bất kỳ tên nào $_FILES['tệp người dùng']['tên']Tên gốc của tệp trên máy khách $_FILES['userfile']['type']Loại mime của tệp, nếu trình duyệt cung cấp thông tin này. Một ví dụ sẽ là Kích thước, tính bằng byte, của tệp đã tải lên $_FILES['userfile']['tmp_name']Tên tệp tạm thời của tệp chứa tệp đã tải lên được lưu trữ trên máy chủ $_FILES['userfile']['error']Mã lỗi liên quan đến tệp tải lên này Đường dẫn đầy đủ do trình duyệt gửi. Giá trị này không phải lúc nào cũng chứa cấu trúc thư mục thực và không thể tin cậy được. Có sẵn kể từ PHP 8. 1. 0 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 đưa ra với lệnh 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. Đặt nó bằng putenv() từ bên trong tập lệnh PHP sẽ không hoạt động. Biến môi trường này cũng có thể được sử dụng để đảm bảo rằng các hoạt động khác cũng đang hoạt động trên các tệp đã tải lên Ví dụ #2 Xác thực tệp tải lên Xem thêm các mục chức năng cho is_uploaded_file() và move_uploaded_file() để biết thêm thông tin. Ví dụ sau sẽ xử lý tệp tải lên từ một biểu mẫu
"; 0Tập lệnh PHP nhận tệp đã tải lên sẽ triển khai bất kỳ logic nào cần thiết để xác định những gì sẽ được thực hiện với tệp đã tải lên. Ví dụ: bạn có thể sử dụng biến $_FILES['userfile']['size'] để loại bỏ bất kỳ tệp nào quá nhỏ hoặc quá lớn. Bạn có thể sử dụng biến $_FILES['userfile']['type'] để loại bỏ bất kỳ tệp nào không phù hợp với một tiêu chí loại nhất định, nhưng chỉ sử dụng biến này làm bước đầu tiên trong một loạt kiểm tra, vì giá trị này hoàn toàn nằm dưới . Ngoài ra, bạn có thể sử dụng $_FILES['userfile']['error'] và lập kế hoạch logic theo mã lỗi. Bất kể logic là gì, bạn nên xóa tệp khỏi thư mục tạm thời hoặc chuyển tệp đó sang nơi khác Nếu không có tệp nào được chọn để tải lên trong biểu mẫu của bạn, PHP sẽ trả về $_FILES['userfile']['size'] là 0 và $_FILES['userfile']['tmp_name'] là không Tệp sẽ bị xóa khỏi thư mục tạm thời khi kết thúc yêu cầu nếu tệp chưa được chuyển đi hoặc đổi tên |