Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP melaksanakan fungsi muat naik dan pemangkasan imej

PHP melaksanakan fungsi muat naik dan pemangkasan imej

WBOY
WBOYasal
2023-06-23 09:31:351690semak imbas

PHP, sebagai bahasa pengaturcaraan back-end yang biasa digunakan, digunakan secara meluas dalam bidang pembangunan laman web. Antaranya, memuat naik dan memotong imej merupakan salah satu fungsi yang biasa digunakan dalam pembangunan laman web. Berikut akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi muat naik dan pemangkasan imej.

1. Fungsi muat naik imej

Perkenalkan dahulu pelaksanaan fungsi muat naik imej. Kod berikut melaksanakan fungsi muat naik imej yang ringkas:

<html>
    <head>
        <meta charset="UTF-8">
        <title>图片上传</title>
    </head>
    <body>
        <form action="upload.php" method="post" enctype="multipart/form-data">
            <input type="file" name="file">
            <input type="submit" value="上传">
        </form>
    </body>
</html>

Terdapat borang dalam halaman ini dan atribut tindakan borang tersebut menghala ke skrip pemprosesan bernama upload.php. Atribut enctype borang mesti ditetapkan kepada "multipart/form-data" sebelum fail binari boleh dimuat naik. Borang ringkas disediakan di sini dan boleh diubah suai mengikut keperluan.

Berikut ialah skrip pemprosesan untuk muat naik.php:

<?php
// 指定文件上传的目录
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);

// 获取文件类型
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// 检查文件是否是图片
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["file"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}

// 如果文件已经存在,提示并退出
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

// 检查文件大小
if ($_FILES["file"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

// 允许上传的图片类型
if($imageFileType != "jpg" && $imageFileType != "jpeg" && $imageFileType != "png" && $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

// 如果没有错误,进行文件上传
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
} else {
    if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["file"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

Skrip ini mula-mula mendapatkan laluan sasaran pemprosesan fail yang dimuat naik dan jenis fail, dan kemudian menyemak jenis fail dan saiz fail. Jika jenis dan saiz fail memenuhi piawaian, fail akan dimuat naik, jika tidak mesej ralat akan digesa.

2. Fungsi pemangkasan imej

Fungsi pemangkasan imej merujuk kepada pemangkasan imej selepas memuat naiknya, supaya saiz imej, perkadaran, dsb. memenuhi keperluan. Berikut menerangkan cara menggunakan PHP untuk melaksanakan fungsi pemangkasan imej. Dalam artikel ini, kami menggunakan perpustakaan PHP-GD perpustakaan untuk memproses imej.

  1. Pasang perpustakaan GD

Sebelum menggunakan perpustakaan GD, anda perlu memastikan bahawa perpustakaan telah dipasang, jika tidak, ia perlu dipasang. Dalam sistem Linux, anda boleh memasang pustaka GD melalui arahan berikut:

sudo apt-get install php7.2-gd

Dalam sistem Windows, cari pernyataan berikut dalam fail konfigurasi php php.ini:

;extension=php_gd2.dll

dan tukar kepada :

extension=php_gd2.dll

Simpan dan mulakan semula php.

  1. Pangkas gambar

Sebelum menggunakan perpustakaan GD, anda perlu memuatkan gambar ke dalam atur cara. Anda boleh menggunakan fungsi seperti Imagecreatefromjpeg(), Imagecreatefrompng(), Imagecreatefromgif() untuk memuatkan imej dalam format yang berbeza. Berikut ialah program pemangkasan mudah:

//载入原图
$src = imagecreatefromjpeg('test.jpg');

//裁剪原图
$dst = imagecreatetruecolor(100, 100);
imagecopyresampled($dst, $src, 0, 0, 50, 50, 100, 100, 100, 100);

//保存裁剪后的图片
imagejpeg($dst, 'test_crop.jpg');

//释放原图和裁剪后的图片
imagedestroy($src);
imagedestroy($dst);

Program ini menggunakan fungsi pemprosesan imej imagecreatetruecolor() untuk menjana imej kosong, dan kemudian menggunakan fungsi imagecopyresampled() untuk memangkas dan menyalin imej asal ke imej kosong . Akhir sekali, gunakan fungsi imagejpeg() untuk menyimpan imej yang dipangkas.

3. Ringkasan

Dalam PHP, anda boleh memuat naik dan memangkas imej dengan mudah menggunakan borang muat naik dan pustaka GD. Fungsi ini sangat biasa digunakan dalam pembangunan laman web Menguasai kemahiran asas memuat naik dan memotong imej akan menjadi bantuan yang tidak terkira kepada pelajar yang baru dalam pembangunan laman web.

Atas ialah kandungan terperinci PHP melaksanakan fungsi muat naik dan pemangkasan imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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