Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara memuat naik imej dan melaksanakan peraturan penamaan khusus dalam PHP

Cara memuat naik imej dan melaksanakan peraturan penamaan khusus dalam PHP

PHPz
PHPzasal
2023-03-29 11:31:081032semak imbas

PHP ialah bahasa pengaturcaraan yang sangat popular yang digunakan untuk membangunkan banyak aplikasi web. Muat naik imej adalah salah satu fungsi biasa dalam aplikasi web Biasanya kita perlu menamakan semula imej yang dimuat naik atau menggunakan peraturan penamaan tertentu.

Artikel ini akan memperkenalkan cara memuat naik imej dalam PHP dan melaksanakan peraturan penamaan khusus.

1. Muat naik imej asas

Pertama, kita perlu membuat borang untuk menerima pengguna memuat naik fail. Borang harus mengandungi elemen input fail, butang serahkan dan atribut tindakan yang menunjuk ke skrip PHP yang mengendalikan muat naik.

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

Kod di atas memberitahu penyemak imbas bahawa data perlu dikodkan sebagai "data-berbilang bahagian/borang" semasa menyerahkan borang. Kaedah pengekodan ini boleh digunakan untuk memuat naik fail.

Di bawah ialah kod PHP yang mengendalikan muat naik, di mana kami akan melaksanakan peraturan nama semula.

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}

// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

2. Peraturan penamaan fail khusus

Sekarang, kami akan mengubah suai kod PHP untuk melaksanakan peraturan penamaan semula berdasarkan tarikh dan masa semasa.

<?php
$target_dir = "uploads/";
$timestamp = date("YmdHis");
$target_file = $target_dir . $timestamp . '.' . pathinfo($_FILES["fileToUpload"]["name"], PATHINFO_EXTENSION);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
...

Dalam contoh ini, kami menyimpan tarikh dan masa semasa dalam pembolehubah $timestamp. Kami kemudiannya menamakan semula fail yang dimuat naik kepada $timestamp.extension untuk memastikan setiap fail yang dimuat naik mempunyai nama yang unik.

3. Peraturan penamaan yang mengekalkan nama fail asal tetapi menambah awalan

Sekarang, kami akan mengubah suai kod PHP untuk melaksanakan peraturan penamaan semula yang mengekalkan nama fail asal tetapi menambah awalan.

<?php
$target_dir = "uploads/";
$prefix = "myprefix_";
$target_file = $target_dir . $prefix . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
...

Dalam contoh ini, kami menambah pembolehubah awalan yang dipratentukan pada nama asal fail yang dimuat naik. Ini akan menghasilkan nama fail yang diawali dengan "myprefix_".

Ringkasan:

Memuat naik dan menamakan semula fail adalah mudah dalam PHP. Artikel ini menunjukkan cara untuk menamakan semula fail yang dimuat naik berdasarkan tarikh dan masa semasa atau menambah awalan. Anda boleh mengubah suai kod untuk melaksanakan peraturan penamaan semula yang berbeza mengikut keperluan anda. Selepas memuat naik fail, anda juga boleh menyimpannya ke pangkalan data atau membuat lakaran kecil. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Cara memuat naik imej dan melaksanakan peraturan penamaan khusus dalam PHP. 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