Lấy hình ảnh từ người dùng
Xem http://php.net/manual/en/reserved.variables. files.php
và http://php.net/manual/en/features.file- upload.php
và bạn bè để biết thông tin chi tiết về cách sử dụng $_FILES
để nhận được tải lên.
Khi bạn có hình ảnh trong một biến, hãy nói $jpg
, không sử dụng bất kỳ chức năng mã hóa / giải mã văn bản nào; nó sẽ chỉ làm hỏng mọi thứ. Các cách tiếp cận khác nhau bên dưới sẽ cho biết những việc cần làm để tránh gặp phải mã 8 bit.
Có ba cách để trình bày hình ảnh, mỗi cách hơi phức tạp
Lưu trữ hình ảnh trong cơ sở dữ liệu; hiển thị nội dòng hình ảnh
Tôi đã sử dụng phương pháp này cho hình thu nhỏ, nhưng không khuyến nghị cho hình ảnh lớn.
Lưu trữ nó trong một MEDIUMBLOB
trong bảng, sử dụng bin2hex()
trong PHP để biến hình ảnh thành một chuỗi. Sau đó sử dụng INSERT ... VALUES (UNHEX('...'))
để chuyển về dạng nhị phân ở phía máy chủ MySQL.
Sau khi tải lại, hãy yêu cầu PHP tham chiếu nói điều gì đó như
$b64 = base64_encode($blob);
echo "<img src='data:image/jpeg;base64,$b64'/>";
Lưu trữ hình ảnh trong cơ sở dữ liệu; Tập lệnh PHP để tạo hình ảnh
Tôi sử dụng điều này khi tôi muốn sử dụng các hàm "image *" của PHP để sửa đổi hình ảnh trước khi hiển thị nó. Vì điều này liên quan nhiều hơn mức bạn có thể cần, nên tôi sẽ chỉ lướt qua những việc cần làm.
Html cho trang sẽ gọi một tập lệnh khác, với bất kỳ đối số nào bạn cần:
<img src=modify.php?this=stuff&that=stuff>
Sau đó, trong modify.php
, bắt đầu bằng
header('Content-type: image/jpeg');
Và kết thúc với điều này (giả sử bạn đang tạo JPEG):
imagejpeg($im);
Lưu trữ hình ảnh trong một tệp
Đây là cách ưa thích mà hầu hết các trang web lớn thường làm.
Nếu tệp của bạn đến từ một tệp tải lên, thì một cái gì đó như thế này sẽ chuyển tệp đến một đường dẫn tốt hơn mà không cần phải chạm vào jpg.
$tmpfile = $_FILES['userfile']['tmp_name'];
move_uploaded_file($tmpfile, $uploadfile);
Thông tin và ví dụ khác: http://php.net/manual/ vi / function.move-upload-file.php
Trong HTML, chỉ cần tạo một cái gì đó như sau:
<img src=path/to/file>
Thực hiện một số nghiên cứu về vị trí trong đường dẫn máy chủ của bạn mà bạn có thể đặt hình ảnh và đảm bảo các quyền đầy đủ.
Lưu ý:Cơ sở dữ liệu không liên quan đến việc lưu giữ hình ảnh, thay vào đó nó có một cột để giữ url "path/to/file"
:
image VARCHAR(255) NOT NULL
Để thảo luận thêm
- Bạn muốn tìm hiểu sâu hơn về kỹ thuật nào trong số 3 kỹ thuật?
- Hãy xem HTML mà bạn đang tạo.
- Hãy xem
SHOW CREATE TABLE
.