Tải lên các tệp, hình ảnh và video bằng PHP dễ dàng như thêm một vài tập lệnh. Hướng dẫn này sẽ chỉ cho bạn hai cách khác nhau về cách thêm chức năng tải tệp php lên trang web của bạn
- – Đây là cách đơn giản nhất để thêm trình tải lên PHP vào dịch vụ của bạn. Ưu điểm là bạn có toàn quyền kiểm soát các tệp được tải lên
- – Đây là một cách dễ dàng hơn để thêm chức năng tải lên PHP. Ưu điểm là bạn không phải quản lý hậu trường cơ sở hạ tầng tải lên tệp phức tạp
Hãy bắt đầu với một số ví dụ đơn giản
Mục lục
Để bắt đầu, chúng ta sẽ tạo như sau
1. Biểu mẫu HTML
Trước tiên, chúng tôi sẽ tạo một biểu mẫu HTML mà người dùng sẽ thấy khi họ muốn tải tệp lên. Tạo một thư mục mới cho dự án ví dụ này và trong đó, tạo một tệp index.html
với mã sau
PHP File Upload
Upload a File:
Một vài điều quan trọng cần lưu ý trong ví dụ trên
action="fileUploadScript.php"
– Điều này tham chiếu đến tập lệnh PHP sẽ xử lý tệp tải lên trên chương trình phụ trợmethod="post"
– Điều này cho biết hành động của trình duyệt mà biểu mẫu sẽ sử dụng khi gửi tệp đến máy chủ [đối với tải lên, đây hầu như luôn là hành động POST, đôi khi là PUT]enctype="multipart/form-data"
– Điều này xác định loại nội dung mà biểu mẫu gửi
Tiếp theo, mở thiết bị đầu cuối của bạn và từ thư mục nơi bạn đã tạo tệp, khởi động máy chủ PHP
Sau đó, mở trình duyệt web của bạn và truy cập
0. Bạn sẽ thấy một cái gì đó như thế này2. Tập lệnh tải lên tệp PHP
Tiếp theo, chúng tôi sẽ xử lý phần phụ trợ của tệp tải lên. Đầu tiên, trong cùng một thư mục, hãy tạo một thư mục mới có tên là uploads. Đây sẽ là nơi tập lệnh của chúng tôi sẽ lưu các tệp
Sau đó, trong cùng thư mục với chỉ mục. html, tạo một tệp có tên fileUploadScript. php. Lưu ý rằng đây là cùng tên với thuộc tính hành động trong biểu mẫu. Sau đó thêm mã này
Một vài điều cần lưu ý
- Khóa được sử dụng để truy cập tệp từ đối tượng
1 khớp với thuộc tính tên được sử dụng trong biểu mẫu
2 – Đây là tên của tệp thực tế
3 – Đây là kích thước của tệp tính bằng byte
4 – Đây là tệp tạm thời nằm trong thư mục
5 của máy chủ
6 – Điều này lấy phần mở rộng tệp từ tên tệp
7 – Đây là nơi các tệp sẽ được lưu trữ trên máy chủ. Trong đoạn script trên, nó được đặt thành thư mục làm việc hiện tại
Cũng lưu ý rằng trong đoạn mã trên, chúng tôi xác thực tệp tải lên bằng cách kiểm tra cả loại và kích thước tệp. [Chỉ các tệp png và jpeg nhỏ hơn 4 MB]
Bây giờ có một số bước cuối cùng trước khi chúng tôi có thể bắt đầu tải tệp lên
- Chuyển đến thư mục
8 của bạn và làm cho nó có thể ghi được bằng cách chạy.
9 - Đảm bảo rằng tệp
0 của bạn được định cấu hình chính xác để xử lý tệp tải lên [Mẹo. để tìm php của bạn. ini, hãy chạymax_file_uploads = 20 upload_max_filesize = 2M post_max_size = 8M
1]max_file_uploads = 20 upload_max_filesize = 2M post_max_size = 8M
max_file_uploads = 20
upload_max_filesize = 2M
post_max_size = 8M
Cuối cùng, nếu bây giờ bạn khởi động máy chủ PHP và truy cập localhost. 1234, sau đó tải tệp lên, bạn sẽ thấy tệp được lưu trong thư mục tải lên
Hãy nhớ rằng tất cả các mã ở trên yêu cầu các biện pháp phòng ngừa bảo mật bổ sung trước khi được phát hành trong sản xuất. Ví dụ: hiện tại không có kiểm tra nào để xem liệu người dùng có tải lên vi-rút được ngụy trang dưới dạng hình ảnh hay không. Để tìm hiểu thêm, hãy xem bài viết này mô tả nhiều cách khác nhau để xử lý các tệp tải lên an toàn
Tải tệp lên bằng FilestackTrong ví dụ thứ hai này, chúng tôi sẽ sử dụng Filestack để tải tệp lên. Filestack là một API tải lên tệp nâng cao và dịch vụ lưu trữ tệp an toàn trên đám mây
Tại sao lại sử dụng bên thứ ba như Filestack thay vì tự mình xây dựng? . Điều này có thể giải phóng bạn để tập trung vào việc xây dựng các phần quan trọng khác trong ứng dụng của bạn
Và bạn có thể bắt đầu miễn phí. Filestack có gói miễn phí xử lý tối đa 100 lượt tải lên hàng tháng với dung lượng lưu trữ 1GB và băng thông 1GB. Nếu bạn cần vượt quá số tiền đó, họ sẽ đưa ra mức giá phù hợp với việc sử dụng
Vậy hãy bắt đầu
1. Đăng ký tài khoản Filestack
Đầu tiên, chúng tôi sẽ đăng ký tài khoản Filestack. Truy cập trang đăng ký của họ và sau khi bạn đăng nhập, hãy lấy Khóa API mà bạn sẽ sử dụng trong các bước sau
2. Bắt đầu tải lên
Bây giờ chúng ta đã có thư viện Filestack, hãy tích hợp tiện ích tải lên tệp JavaScript của chúng, tiện ích này cho phép người dùng của bạn kết nối với nhiều nguồn khác nhau để tải lên từ đó. Ví dụ: nếu họ muốn tải lên từ một URL hoặc từ phương tiện truyền thông xã hội. Chỉ cần thay thế nội dung của chỉ mục. html với những điều sau đây
PHP File Upload
.picker-content{
height:300px;
width:200px;
}
document.addEventListener["DOMContentLoaded", function[event] {
const client = filestack.init[YOUR_API_KEY];
let options = {
"displayMode": "inline",
"container": ".picker-content",
"accept": [
"image/jpeg",
"image/jpg",
"image/png"
],
"fromSources": [
"local_file_system"
],
"uploadInBackground": false,
"onUploadDone": [res] => console.log[res],
};
picker = client.picker[options];
picker.open[];
}];
Sau đó, mở trang của bạn rồi tải tệp lên bằng tiện ích tải lên. Sau khi tải lên, bạn sẽ có thể đăng nhập vào bảng điều khiển Filestack của mình và xem tệp mới tải lên của mình
Và đó là nó. Bạn thậm chí không cần máy chủ để xử lý tệp, điều này tốt hơn cho khả năng mở rộng, bảo mật và bảo trì
Thư viện Filestack PHP [tùy chọn]
Ví dụ trên bao gồm ví dụ đơn giản nhất về tải tệp lên bằng Filestack. Tuy nhiên, điều gì sẽ xảy ra nếu bạn muốn truy cập tệp trên máy chủ của mình để chạy một số loại xử lý hậu kỳ, chẳng hạn như kiểm tra xem một hình ảnh có an toàn cho công việc không? . Chúng ta sẽ sử dụng Composer để cài đặt thư viện Filestack PHP. Nếu bạn chưa có Trình soạn thảo, bạn có thể cài đặt nó bằng cách đi tới thư mục bạn đã tạo ban đầu và chạy [xem phần này để biết tài liệu chính thức]
php -r "copy['//getcomposer.org/installer', 'composer-setup.php'];" php -r "if [hash_file['sha384', 'composer-setup.php'] === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5'] { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink['composer-setup.php']; } echo PHP_EOL;" php composer-setup.php php -r "unlink['composer-setup.php'];"
Sau khi bạn thực hiện các thao tác trên, bạn sẽ có thể xem đầu ra của Composer bằng cách chạy
max_file_uploads = 20
upload_max_filesize = 2M
post_max_size = 8M
2Sau đó chạy
max_file_uploads = 20
upload_max_filesize = 2M
post_max_size = 8M
3 để cài đặt Filestack SDKBây giờ chúng ta đã có thư viện Filestack, hãy tạo một tập lệnh PHP mới để kiểm tra xem một tệp được tải lên cụ thể có an toàn cho công việc không. Tạo một tệp mới có tên là tệpUploadFilestack. php và thêm phần sau [đảm bảo thay đổi các biến YOUR_API_KEY, YOUR_SECURITY_SECRET và YOUR_FILE_HANDLE]
Khi tập lệnh này được chạy, kết quả kiểm tra an toàn cho công việc sẽ được lưu trong biến
max_file_uploads = 20
upload_max_filesize = 2M
post_max_size = 8M
4. Và đó chỉ là một ví dụ. Sử dụng Filestack PHP SDK cho phép bạn thực hiện nhiều tác vụ khác nhau trên các tệp đã tải lên của mình. Kiểm tra các ví dụ khác- Chuyển đổi tệp trước khi tải lên
- Kiểm tra xem tệp tải lên có “an toàn cho công việc” không
- Chuyển mã video hoặc âm thanh đã tải lên
- Chuyển đổi tệp tải lên thành pdf
- Và nhiều hơn nữa…
Ngoài ra, nếu bạn muốn xem thêm các ví dụ về cách tích hợp bộ chọn tệp tải lên vào một biểu mẫu, hãy xem các liên kết này
- Tải lên hình ảnh
- mở bộ chọn
- Mở bộ chọn ở chế độ nội tuyến
- Cắt hình ảnh
- Xem trước tệp
Tóm lược
Bây giờ bạn đã biết cách thực hiện tải lên tệp PHP theo hai cách, bạn có thể dễ dàng thêm tính năng này vào trang web hoặc ứng dụng của mình. Nếu việc xử lý các thách thức về khả năng mở rộng, bảo mật và bảo trì khi lưu trữ cơ sở hạ tầng tải tệp lên của riêng bạn có vẻ quá khó khăn, hãy để Filestack xử lý việc đó. Ngoài ra, hãy nhớ xem bài viết của chúng tôi về Tải lên tệp AJAX