Đây là chức năng giúp chúng ta có thể gửi file lên server đó là file ảnh hoặc các loại tập tin.
Cấu hình: Tìm vào file php.ini bật trạng thái upload file: Tìm vào file php.ini bật trạng thái upload file
file_uploads = On
FORM HTML UPLOAD FILE
Chú ý::
- Chỉ hỗ trợ form có phương thức truyền dữ liệu POST
- Khai báo thuộc tính enctype="multipart/form-data" cho From
XỬ LÝ UPLOAD FORM
- Dữ liệu file upload được đẩy vào mảng hệ thống $_FILES
- Kiểm tra dữ liệu hợp lệ của file upload: Loại file, dung lượng,...
Hàm hỗ trợ
- Lấy tên file
- Lấy đuôi mở rộng file
Bước 1: Tạo đường dẫn chứa file upload: Tạo đường dẫn chứa file upload
Ta có đường dẫn file sau khi upload
Bước 2: Kiểm tra file trước khi upload: Kiểm tra file trước khi upload
- Kiểm tra đuổi mở rộng[upload ảnh có đuổi png, jpg, jpeg, gif]
- Kiểm tra kích thước file
Bước 3: Chuyển file từ thư mục tạm lên server: Chuyển file từ thư mục tạm lên server
if [empty[$error]] {
if [move_uploaded_file[$_FILES["fileUpload"]["tmp_name"], $target_file]] {
echo "Bạn đã upload file thành công";
$flag = true;
} else {
echo "File bạn vừa upload gặp sự cố";
}
}
CODE UPLOAD FILE ĐẦY ĐỦ
0GHI NHỚ
- Upload file giúp chuyển một file từ máy tính lên server
- Quá trình upload file được tiến hành qua 3 bước
- Trước khi upload file cần kiểm tra file thích hợp với mục đích sử dụng
Url Link
//hocweb123.com/cach-upload-file-len-server-bang-php.html
- Tổng quan về kỹ thuật Upload file PHP
- Tạo form HTML file
- Code Php xử lý upload
- Code Php xử lý upload nhiều file
Tổng quan về kỹ thuật Upload file trong PHP
Để HTML FORM có thể gửi file lên server [http server] thì form phải có thuộc tính enctype="multipart/form-data", phần tử trong form để chọn và gửi file có dạng [tức là dùng phần tử
9 với thuộc tính
0]. Cấu trúc tóm tắt là: enctype="multipart/form-data", phần tử trong form để chọn và gửi file có dạng [tức là dùng phần tử
9 với thuộc tính
0]. Cấu trúc tóm tắt là:
1Khi file Upload lên Server [chạy PHP] thì file sẽ lưu vào một thư mục tạm [temporary directory, như trên Linux đó là /tmp] của hệ thống PHP, và toàn bộ thông tin về file upload sẽ lưu trong biến mảng toàn cục
1Chúng ta cần đọc thông tin từ
1 để nhanh chóng di chuyển file được upload vào thư mục tạm vào một nơi lưu trữ lâu dài [nếu không xử lý gì, thì sau một khoảng thời gian file này bị xóa].Mảng biến
1 khi var_dump có cấu trúc dạng như sau:
2Các thành phần đó là:
- myfile : chỉ số mảng tương ứng với tên phần tử input, upload file. : chỉ số mảng tương ứng với tên phần tử input, upload file.
- name : tên gốc [ban đầu] của file. : tên gốc [ban đầu] của file.
- type : kiểu file [tùy phần mở rộng có thể là
4,
5,
6 ...] : kiểu file [tùy phần mở rộng có thể là
4,
5,
6 ...] - tmp_name : nơi lưu tạm file upload lên, nếu muốn di chuyển nó ra khỏi thư mục tạm dùng hàm
7. : nơi lưu tạm file upload lên, nếu muốn di chuyển nó ra khỏi thư mục tạm dùng hàm
7. - error : mã lỗi, nếu mã này bằng 0 là không lỗi. : mã lỗi, nếu mã này bằng 0 là không lỗi.
- size : cỡ file [byte]. : cỡ file [byte].
Bằng việc đọc
1 bạn sẽ biết các thông tin về file được upload, nơi file đang lưu tạm, bạn cần phải xử lý bằng các hàm PHP để di chuyển file ra một vị trí theo cấu trúc thư mục của ứng dụng.Nếu sau khi upload vào thư mục tạm một thời gian [như trên là
9] một thời gian [do cấu hình hệ thống] mà bạn không di chuyển nó đến vị trí thích hợp, nó sẽ tự xóa.Tạo form HTML upload file
Để thực hành upload file trong PHP, trước tiên tạo
0 cho phép người dùng chọn file và gửi file đó lên server. Giả sử code PHP để xử lý upload các file hình ảnh nằm ở
1 thì bạn có thể xây dựng
0 như sau: Có thể tạo file
3
3Hiện thị
0 có dạng:Lưu ý khi tạo form để uplad ảnh [file] thì cần thiết đặt thuộc tính form có:
5 Phần tử chọn file trong form là
9 với kiểu
0. Tên phần tử là
8
5Phần tử chọn file trong form là
9 với kiểu
0. Tên phần tử là
8Code PHP xử lý Upload File
Code xử lý upload sau là xử lý chỉ cho upload các file ảnh, với các loại file là jpg, png, jpeg, gif. File Upload file có cỡ < 0.8 MB. File Upload sẽ lưu vào thư mục
9Code xử lý upload file để trong file
0 có nội dung như sau:
4Giải thích code trên:
Các
1 mà
0 HTML upload nên, được PHP lưu ở một thư mục tạm hệ thống, và tất cả các thông tin về file được lưu ở biến mảng
3, cấu trúc biến này như sau:
5
4 tên key tương ứng với tên phần tử form upload file, ví dụ trên là
8Như vậy khi xủ lý upload file, bạn truy cập vào $_FILE và di chuyển file vừa upload từ
6 sang vị trí mới bạn muốn lưu
7 bằng hàm
8Kiểm tra file upload có phải là file ảnh [dùng cho trường hợp bạn chỉ cho phép up ảnh] thì đầu tiên gọi
9 để xem kích thước ảnh, nếu hàm phân tích được có nghĩa là ảnh, ngược lại là một loại file khác.Kiểm tra phần mở rộng của tên file: Lấy phần mở rộng
0 rồi so sánh với các mẫu cho phép.NHANH CHÓNG CHẠY THỬ CODE TRÊN
Bạn có thể tạo ra một thư mục đặt tên
1, để trong đó 2 file
3 và
0 ở trên, trong thư mục này tạo thư mục con
9 để lưu file - cấu trúc này như tại đây: uploadfileSau đó vào thư mục
1 và gõ lệnh chạy Server HTTP của PHP
6Từ trình duyệt truy cập
6 để chạy thửCode PHP Upload nhiều File
Trong thẻ
7 nếu có thuộc tính
8 và tên phần tử chỉ ra là mảng, thì cho phép chọn một lúc nhiều file để upload.Ví dụ HTML như sau:
7Lúc này tại PHP
9 mỗi thành phần sau đều là mảng chứa số lượng tương ứng của file upload
0 chứa các tên file upload [up 3 file thì là mảng 3 phần tử các tên]
1 các kiểu file
2 chứa các vị trí lưu tạm file
3 mảng báo lỗi
4 các kích thước file
Đoạn code sau hiện thị FORM để bạn chọn một lúc nhiều file upload, sau đó code PHP sẽ hiện thị các thông tin về các file mà bạn upload lên. Hãy chạy và chọn thử nhiều file upload để kiểm tra
File
5
8Source code: uploadfile [Git], hoặc tải rphp-uploadfile
Chạy thử bằng cách để file này vào thư mục
1 như trên, và truy cập:
7 để kiểm tra