Hướng dẫn php upload file
Trong bài này, chúng ta sẽ tìm hiểu về cách upload file lên web server trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP. Show 1. Tạo html form để upload fileChúng ta có thể tạo một html form để upload file với thuộc tính
Trong ví dụ trên, html form có thuộc tính
2.1. Cấu hình upload file trong php.iniĐể upload file lên web server thì cần đảm bảo cấu hình PHP cho phép upload file. Mở file php.ini (xem hướng dẫn ở phần Thay đổi default timezone trong PHP), tìm đến cấu hình file_uploads và gán giá trị là On.
2.2. Xử lý upload file với PHPBên dưới là một đoạn code của file upload.php để xử lý file được upload.
Khi upload một file lên web server, tất cả thông tin về file sẽ được lưu trữ trong biến Biến $_FILES là một mảng kết hợp có cấu trúc như sau:
Trong đó, – fileUpload: là key của mảng tương ứng name của thẻ – name: tên của file được upload. – type: loại file tùy vào đuôi mở rộng của file, có thể là text/plain, image/jpg, image/png,… – tmp_name: là file tạm lưu trữ file được upload. – error: mã lỗi khi upload, nếu errror = 0 thì không lỗi. – size: kích thước file tính bằng byte. Khi file đã được upload lên server, chúng ta có thể thực hiện các thao tác khác nhau trên file này: – Kiểm tra file có bị lỗi không? – Kiểm tra loại file upload có được phép không? – Kiểm tra dung lượng của file có vượt quá giới hạn cho phép không? – Kiểm tra file đã tồn tại trên server chưa? – Lưu file vào một thư mục trên server. – …
2.3. Lọc (filter) các file được uploadChúng ta có 2 cách để lọc (filter) các file được upload lên web server. Cách thứ 1 – Sử dụng thuộc tính accept trong thẻ
Cách thứ 2 – Upload file rồi kiểm tra loại file với PHP
3. Xử lý upload nhiều file với PHPChúng ta có thể upload nhiều file cùng một lúc với thẻ có thuộc tính
Chúng ta sẽ viết một file upload-multiple-files.php để xử lý upload nhiều file. Thông tin về các file sẽ được truy xuất từ $_FILES[‘fileUpload’] dưới dạng các mảng. – $_FILES[‘fileUpload’][‘name’]: chứa các tên file được upload. – $_FILES[‘fileUpload’][‘type’]: chứa các loại file được upload. – $_FILES[‘fileUpload’][‘tmp_name’]: chứa các vị trí lưu tạm các file. – $_FILES[‘fileUpload’][‘error’]: là mảng báo lỗi khi upload. – $_FILES[‘fileUpload’][‘size’]: chứa kích thước các file được upload.
Kết quả các file được upload. Sau khi truy xuất đến từng file được upload, các bạn có thể thực hiện các thao tác trên từng file như bình thường.
|