Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tải lên hình ảnh trong cơ sở dữ liệu MYSQL và hiển thị nó bằng PHP với Swift

Lấy hình ảnh từ người dùng

Xem http://php.net/manual/en/reserved.variables. files.php 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 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mã hóa tham số-giá trị cho SELECT trong PHP-MySQL

  2. Bật mục cuối cùng trong Mảng JSON trong MySQL 5.7

  3. MySQL boolean - lật giá trị?

  4. bộ ký tự django với sự kỳ lạ của MySQL

  5. MySQL - SELECT ... WHERE id IN (..) - đúng thứ tự