Bài viết này chỉ cho bạn cách tạo biểu mẫu email dựa trên PHP hỗ trợ tệp đính kèm tệp. Bài viết cũng sẽ chỉ cho bạn cách xác thực loại và kích thước của tệp đã tải lên.
Biểu mẫu HTML với hộp tải lên tệp
Mã cho biểu mẫu HTML với hộp tải lên tệp được đưa ra bên dưới. Người dùng có thể nhấp vào nút ‘Duyệt, để chọn tệp từ máy cục bộ của mình.
Name:
Email:
Message:
Select A File To Upload:
Hình thức sẽ trông như thế này:
Xin lưu ý rằng chúng tôi đã thêm:
"enctype="multipart/form-data"
Trong khi xác định thẻ . Điều này là để nói với trình duyệt rằng biểu mẫu này sẽ được sử dụng để tải lên các tệp. Sau đó, chúng tôi đã thêm các trường của tên tên và các trường email và các trường email để thu thập thông tin người dùng. Trường biểu mẫu thứ ba là hộp tải lên tệp.
Khi nhấn nút Sub Sub Sub Sund, dữ liệu biểu mẫu cùng với dữ liệu tệp được đăng lên tập lệnh được trỏ bởi thuộc tính ‘hành động của biểu mẫu.
Nhận tệp đã tải lên trong tập lệnh PHP
Trong tập lệnh PHP, trước tiên chúng tôi sẽ xác thực việc gửi và nếu xác thực thành công, chúng tôi sẽ gửi bài đăng qua email.
Chúng ta có thể truy cập tệp được tải lên và các thuộc tính khác nhau của nó bằng cách sử dụng mảng $ _FILES. Mảng này sẽ chứa tên, kích thước, đường dẫn và các thuộc tính khác của tệp được tải lên. Mã bên dưới có tên, loại và kích thước của tệp đã tải lên:
//Get the uploaded file information
$name_of_uploaded_file =
basename[$_FILES['uploaded_file']['name']];
//get the file extension of the file
$type_of_uploaded_file =
substr[$name_of_uploaded_file,
strrpos[$name_of_uploaded_file, '.'] + 1];
$size_of_uploaded_file =
$_FILES["uploaded_file"]["size"]/1024;//size in KBs
Mã trên là nhận các thuộc tính khác nhau của tệp được tải lên từ mảng $_FILES[]
.
Xác thực kích thước và phần mở rộng của tệp đã tải lên
Giả sử chúng tôi không muốn cho phép các tệp lớn hơn kích thước 100kb và chúng tôi chỉ muốn cho phép các tệp hình ảnh được tải lên. Mã xác nhận diễn ra như thế này:
//Settings
$max_allowed_file_size = 100; // size in KB
$allowed_extensions = array["jpg", "jpeg", "gif", "bmp"];
//Validations
if[$size_of_uploaded_file > $max_allowed_file_size ]
{
$errors .= "\n Size of file should be less than $max_allowed_file_size";
}
//------ Validate the file extension -----
$allowed_ext = false;
for[$i=0; $isetTXTBody[$text];
$message->addAttachment[$path_of_uploaded_file];
$body = $message->get[];
$extraheaders = array["From"=>$from, "Subject"=>$subject,"Reply-To"=>$visitor_email];
$headers = $message->headers[$extraheaders];
$mail = Mail::factory["mail"];
$mail->send[$to, $headers, $body];
Lớp
"enctype="multipart/form-data"
0 giúp soạn tin một tin nhắn MIME. Trong mã trên, một đối tượng mail_mime được tạo, thân văn bản được cập nhật [
"enctype="multipart/form-data"
1] và tệp đính kèm được thêm vào [
"enctype="multipart/form-data"
2]Thông báo được mã hóa MIME sau đó được gửi bằng lớp thư.
Mẫu tải lên PHP mẫu
Nhấn vào đây để tải xuống bản tin php-form-toorm.zip
Việc tải xuống chứa một biểu mẫu tải lên PHP hoàn chỉnh gửi được tải lên qua email.
Cách cài đặt thư viện lê
Trong bài viết này, chúng tôi đã sử dụng các lớp Pear :: Mail và Pear :: mail_mime để gửi email với tệp đính kèm. Trước khi sử dụng các lớp này, bạn cần cài đặt gói lê trên máy chủ của mình. Nó nằm ngoài phạm vi của hướng dẫn này để thảo luận về việc lắp đặt lê. Nhưng, tôi muốn cho bạn một mẹo nhanh. Nhận tập lệnh trình cài đặt lê từ
//pear.php.net/go-pear
Lưu tệp dưới dạng pear-installer.php. Tải tệp này lên máy chủ của bạn trong bất kỳ thư mục nào. Sau đó, chạy tệp này từ trình duyệt của bạn, như thế này:
//www.yourdomain.com/pear-installer.php
Điều này hiển thị giao diện web để cài đặt lê trên trang web của bạn. Giao diện cho thấy hướng dẫn chi tiết. Sau khi PEAR được cài đặt, tìm kiếm và cài đặt các gói Mail Mail và Mail Mail_Mime.
Cũng xem: Các biểu mẫu tải lên tệp miễn phí khác từ reusableforms.com: more free file upload forms from ReusableForms.com
Xem thêm
- Một mẫu email đơn giản ra khỏi lò
- Cách thêm biểu mẫu email trong trang web WordPress của bạn
- Gửi các bài nộp biểu mẫu đến email bằng cách sử dụng 'mailto:'
- Tại sao tập lệnh PHP của tôi không gửi email?