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.