Hướng dẫn dùng and image trong PHP
Với mọi trang web đều phải có chức năng upload image lên đưa Database với mục đích thêm hình ảnh vào cơ sở dữ liệu MySQL. Bài viết này sẽ hướng dẫn bạn cách upload ảnh bằng PHP và MySQL với những đoạn code dễ hiểu đọc xong bạn hoàn toàn có thể làm được. Với bài tập này bạn sẽ biết cách lưu đường dẫn ảnh vào Database và hiển thị bức ảnh lên trên website. Nào hãy bắt đầu
thôi! Bước 1: Bạn sẽ khởi tạo 4 file như trong hình
Tạo 1 cơ sở dữ liệu Database tên là ‘upload_image‘ => sau đó tạo bảng Table tên là images bằng paste đoạn MySQL vào Database CREATE TABLE IF NOT EXISTS `images` ( `id` int(11) NOT NULL AUTO_INCREMENT, `image` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; Bước 2: Tiếp theo bạn sẽ tạo một file upload.php
Bước 3: Tiếp theo sẽ tạo một file là xuly.php 2097152) { $errors[]='Kích thước file không được lớn hơn 2MB'; } $image = $_FILES['image']['name']; $target = "photo/".basename($image); $sql = "INSERT INTO images (image) VALUES ('$image')"; mysqli_query($conn, $sql); if (move_uploaded_file($_FILES['image']['tmp_name'], $target)) { echo ''; }else{ echo ''; } } $result = mysqli_query($conn, "SELECT * FROM images"); ?> Bước 4: Tạo file connect.php để kết nối database Bước 5: Thêm file style.css #content{ margin: 20px auto; border: 1px solid #cbcbcb; overflow: auto; padding: 20px; } form{ margin: 20px auto; } form div{ margin-top: 5px; } #img_div{ padding: 5px; border: 1px solid #cbcbcb; float: left } #img_div:after{ content: ""; display: block; clear: both; } #img_div img{ float: left; margin: 5px; width: 400px; height: auto; } Sau khi tạo xong 4 file: thư mục photo trong máy tính, upload.php, xuly.php và connect.php, style.css bạn thử chạy vào xem kết quả như thế nào. Kết luận: Trên đây là code upload hình ảnh lên Database bằng PHP và MySQL, với bài hướng dẫn với các bước đơn giản trên hi vọng sẽ giúp bạn học thêm một chút kiến thức về lập trình PHP.
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ử Khi 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 Chúng ta cần đọc thông tin từ Mảng biến array (size=1)
'myfile' =>
array (size=5)
'name' => string 'somefile.txt' (length=12)
'type' => string 'text/plain' (length=10)
'tmp_name' => string '/tmp/phpDC66.tmp' (length=16)
'error' => int 0
'size' => int 18
Các thành phần đó là:
Bằng việc đọc Nếu sau khi upload vào thư mục tạm một thời gian (như trên là Tạo form HTML upload fileĐể thực hành upload file trong
PHP, trước tiên tạo Có thể tạo file Hiện thị Lưu ý khi tạo form để uplad ảnh (file) thì cần thiết đặt thuộc tính form có: Code PHP xử lý Upload FileCode 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 Code xử lý upload file để trong file $maxfilesize) { echo "Không được upload ảnh lớn hơn $maxfilesize (bytes)."; $allowUpload = false; } // Kiểm tra kiểu file if (!in_array($imageFileType,$allowtypes )) { echo "Chỉ được upload các định dạng JPG, PNG, JPEG, GIF"; $allowUpload = false; } if ($allowUpload) { // Xử lý di chuyển file tạm ra thư mục cần lưu trữ, dùng hàm move_uploaded_file if (move_uploaded_file($_FILES["fileupload"]["tmp_name"], $target_file)) { echo "File ". basename( $_FILES["fileupload"]["name"]). " Đã upload thành công."; echo "File lưu tại " . $target_file; } else { echo "Có lỗi xảy ra khi upload file."; } } else { echo "Không upload được file, có thể do file lớn, kiểu file không đúng ..."; } ?> Giải thích code trên: Các $_FILE = Array ( [file1] => Array ( [name] => 'test2.txt';//một tên file người dùng upload [type] => text/plain (kiểu nội dung file text) [tmp_name] => /tmp/php/php1h4j1 //vị trí lưu file tạm thời trên server. [error] => UPLOAD_ERR_OK (= 0 là không lỗi) [size] => 123 (kích thước file - bype) ) [file2] => Array ( [name] => test.jpg [type] => image/jpeg [tmp_name] => /tmp/php/php6hst32 [error] => UPLOAD_ERR_OK [size] => 98174 ) )
Như vậy khi xủ lý upload file, bạn truy cập vào $_FILE và di chuyển file vừa upload từ Kiể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 Kiểm tra phần mở rộng của tên
file: Lấy phần mở rộng NHANH CHÓNG CHẠY THỬ CODE TRÊN Bạn có thể tạo ra một thư mục đặt tên Sau đó vào thư mục php -S 0.0.0.0:8088 -t uploadfile/ Từ trình duyệt truy cập Code PHP Upload nhiều FileTrong thẻ Ví dụ HTML như sau: Lúc này tại PHP
Đ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 "; echo "Tên file: $names[$i] Source code: uploadfile (Git), hoặc tải rphp-uploadfile Chạy thử bằng cách để file này vào thư mục |