PHP melaksanakan fungsi galeri dalam talian

PHPz
Lepaskan: 2023-06-22 17:54:02
asal
1811 orang telah melayarinya

Dalam era Internet moden, fungsi galeri telah menjadi ciri standard banyak tapak web, dan PHP, sebagai bahasa pengaturcaraan yang berkuasa, juga menyediakan pelbagai cara untuk melaksanakan fungsi ini.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi galeri dalam talian yang mudah untuk memuat naik, menyemak imbas dan memadam gambar.

1. Persediaan

Sebelum menggunakan PHP untuk melaksanakan fungsi galeri dalam talian, kita perlu menyediakan beberapa kerja asas:

1.

2. Sediakan pelayan untuk menyokong muat naik fail PHP.

3. Cipta pengguna dan kata laluan MySQL baharu pada hos menggunakan arahan berikut:

BUAT PENGGUNA 'newuser'@'localhost' DIKENAL PASTI OLEH 'user_password';

4. Cipta pangkalan data dan jadual MySQL baharu untuk menyimpan maklumat galeri. Anda boleh menggunakan arahan berikut:

CIPTA PANGKALAN DATA mydb;

CIPTA JADUAL images (
id int(11) BUKAN NULL AUTO_INCREMENT,
name varchar (255) BUKAN NULL,
path varchar(255) BUKAN NULL,
uploaded_time tarikh masa BUKAN NULL STAMP MASA LALAI,
KUNCI UTAMA (id)
) ENGINE= CHARSET lalai =utf8;

5. Cipta folder baharu untuk menyimpan imej yang dimuat naik.

2. Laksanakan fungsi muat naik

Pertama, kita perlu mencipta borang HTML untuk membolehkan pengguna memuat naik fail imej. Borang ini mesti mempunyai atribut enctype="multipart/form-data" untuk memuat naik fail. Berikut ialah kod borang:

<input type="file" name="file" id="file">
<input type="submit" name="submit" value="上传">
Salin selepas log masuk

Dalam borang ini, kami mentakrifkan elemen muat naik fail dan melaksanakan butang "Muat Naik Fail" dalam HTML asli. Apabila pengguna mengklik butang ini, borang akan memuat naik fail ke fail upload.php pada pelayan.

Seterusnya, kita perlu menulis kod untuk fail upload.php untuk menyelesaikan pemprosesan dan menyimpan fail yang dimuat naik. Berikut ialah kod:

$target_dir = "uploads/";
$target_file = $target_dir = 1 ;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Semak sama ada fail itu jenis imej

if(isset($_POST["submit"] )) {

$check = getimagesize($_FILES["file"]["tmp_name"]);
if($check !== false) {
    echo "文件是一个图像," . $check["mime"] . ".";
    $uploadOk = 1;
} else {
    echo "文件不是一个图像。";
    $uploadOk = 0;
}
Salin selepas log masuk

}

// Semak sama ada fail itu sudah wujud

jika (file_exists($target_file)) {

echo "抱歉,文件已经存在。";
$uploadOk = 0;
Salin selepas log masuk

}

// Semak Saiz fail

jika ($_FILES"file" > 500000) {

echo "抱歉,您的文件太大。";
$uploadOk = 0;
Salin selepas log masuk

}

// Benarkan format fail tertentu

if($imageFileType ! = "jpg" && $ imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {

echo "抱歉,只能上传JPG、JPEG、PNG和GIF格式的文件。";
$uploadOk = 0;
Salin selepas log masuk

}

// Semak status muat naik

jika ($uploadOk == 0) {

echo "抱歉,您的文件未能上传。";
Salin selepas log masuk

// Jika semuanya berjalan lancar, cuba alihkan fail ke direktori sasaran

} lain {

if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
    echo "文件" . basename( $_FILES["file"]["name"]). "上传成功。";

    // 将文件路径、名称和上传时间保存到数据库中
    $img_name = $_FILES["file"]["name"];
    $img_path = $target_file;
    $sql = "INSERT INTO images (name, path) VALUES ('$img_name', '$img_path')";
    $result = mysqli_query($conn, $sql);
} else {
    echo "抱歉,发生了错误,您的文件无法上传。";
}
Salin selepas log masuk

}

?>

Kod mula-mula melakukan beberapa semakan, seperti menyemak sama ada fail itu imej, jika fail itu sudah wujud, had saiz fail dan format fail yang dibenarkan. Jika semua semakan ini lulus, fail boleh dialihkan ke direktori yang ditentukan dan beberapa maklumat disimpan dalam pangkalan data untuk operasi menyemak imbas dan pemadaman.

3. Laksanakan fungsi menyemak imbas

Seterusnya, kita perlu melaksanakan fungsi menyemak imbas gambar yang dimuat naik. Untuk melakukan ini, kita perlu membaca maklumat imej yang disimpan dalam pangkalan data dan memaparkannya pada halaman web.

Berikut ialah kod:

// Dapatkan laluan semua imej daripada pangkalan data
$sql = "PILIH id, nama, laluan DARI imej";
$result = mysqli_query($conn, $sql);

// Gelung melalui laluan dan nama serta output HTML

while($row = mysqli_fetch_assoc($result)) {

$img_id = $row["id"];
$img_name = $row["name"];
$img_path = $row["path"];
echo '<div class="image">';
echo '<a href="view.php?id=' . $img_id . '"><img src="' . $img_path . '" title="' . $img_name . '"></a>';
echo '</div>';
Salin selepas log masuk

}

?>

4. Laksanakan fungsi pemadaman

Langkah terakhir ialah menambah fungsi memadam imej. Apabila pengguna memuat naik imej dan tidak memerlukannya lagi, mereka boleh memilih untuk memadamkannya daripada galeri.

Berikut ialah kod:

if(isset($_GET["delete"])) {
$id = $_GET["delete"];

// 从数据库中删除记录
$sql = "DELETE FROM images WHERE id='$id'";
$result = mysqli_query($conn, $sql);

// 删除本地文件
$info_query = "SELECT path FROM images WHERE id='$id'";
$info_result = mysqli_query($conn, $info_query);
$row = mysqli_fetch_assoc($info_result);
unlink($row["path"]);

// 将用户重定向到基页面
header("location: index.php");
Salin selepas log masuk
}

?> ;

Kod ini akan memadamkan rekod daripada pangkalan data berdasarkan ID imej dan memadamkan fail yang ditentukan setempat. Selepas itu, ubah hala pengguna ke halaman galeri asas.

Ringkasan

Melalui pengenalan artikel ini, kita dapat memahami cara menggunakan PHP untuk melaksanakan fungsi galeri dalam talian, termasuk fungsi memuat naik, menyemak imbas dan memadam gambar.

Perlu diambil perhatian bahawa beberapa butiran penting yang terlibat dalam kod, seperti pengesahan input, had saiz fail dan pengesahan jenis fail, disediakan untuk memastikan keselamatan dan integriti. Dalam aplikasi praktikal, kod ini boleh diubah suai dan dilanjutkan mengikut keperluan anda sendiri.

Atas ialah kandungan terperinci PHP melaksanakan fungsi galeri dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!