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

Sử dụng PHP và MySQL để thêm hình ảnh vào thư viện

Bạn sẽ cần một bảng MySQL chứa thông tin về hình ảnh và tên tệp của hình ảnh:

CREATE TABLE images (
    id int(3) not null auto_increment,
    data_type varchar(128) not null,
    title varchar(256) not null,
    file_name varchar(64) not null,
    primary key(id)
)

Và bạn sẽ phải tạo một biểu mẫu tải lên hình ảnh, giống như sau:

<form enctype="multipart/form-data" action="uploader.php" method="POST">
    Data type: <input type="text" name="dataType"><br>
    Title: <input type="text" name="title"><br>
    Image to upload: <input type="file" name="image"><br>
    <input type="submit" value="Upload">
</form>

Và một tập lệnh PHP để xử lý các tệp đã tải lên và thêm các mục nhập cơ sở dữ liệu:

uploader.php

<?php
$dataType = mysql_real_escape_string($_POST["dataType"]);
$title = mysql_real_escape_string($_POST["title"]);
$fileName = basename($_FILES["image"]["name"]);
$target_path = "images/gallery/".$fileName);
if (file_exists($target_path))
{
    echo "An image with that file name already exists.";
}
elseif (move_uploaded_file($_FILES["image"]["tmp_name"], $target_path))
{
    // The file is in the images/gallery folder. Insert record into database by
    // executing the following query:
    // INSERT INTO images
    // (data_type, title, file_name) VALUES('$dataType','$title','$fileName')
    echo "The image was successfully uploaded and added to the gallery :)";
}
else
{
    echo "There was an error uploading the file, please try again!";
}
?>

Lưu ý rằng tập lệnh này không an toàn, nó sẽ cho phép mọi người tải lên các tệp .php, ví dụ:lên máy chủ. Một cái gì đó như thế này sẽ là cần thiết:

$allowed_extensions = array("jpg","jpeg","png","gif");
$extension = pathinfo($fileName, PATHINFO_EXTENSION);
if (!in_array($extension,$allowed_extensions))
{
    die("Only these file types are allowed: jpg, png, gif");
}

Bây giờ trên trang thư viện, bạn sẽ muốn xem qua các hình ảnh trong cơ sở dữ liệu.

<?php
$images = mysql_query("SELECT * FROM images");
while ($image=mysql_fetch_assoc($images))
{
    ?>
    <li data-id="id-<?=$image["id"] ?>" data-type="<?=$image["data_type"] ?>">
    <div class="column grid_3">
    <a class="fancybox" rel="<?=$image["data_type"] ?>" href="images/gallery/<?=$image["file_name"] ?>" title="<?=$image["title"] ?>">
    <img src="images/gallery/<?=$image["file_name"] ?>" alt="<?=$image["title"] ?>" class="max-img-border"></a>
    <h5><?=$image["title"] ?></h5>
    </div>  
    </li>
    <?php
}
?>

Xin lưu ý rằng biểu mẫu tải lên sẽ phải được bảo vệ và chỉ có sẵn cho những người phù hợp. Bạn không muốn những kẻ gửi thư rác tải các tệp ngẫu nhiên lên máy chủ của mình.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể kết nối với mysql từ xa từ Mac lion

  2. Buộc thả mysql bỏ qua ràng buộc khóa ngoại

  3. Cách sửa chữa cơ sở dữ liệu và bảng MySQL

  4. Nhận id của một hàng khi KEY DUY NHẤT bị vi phạm

  5. TẠO BẢNG dưới dạng CHỌN - sử dụng MEMORY ENGINE (trong bộ nhớ RAM)