Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memuat naik gambar dalam php

Bagaimana untuk memuat naik gambar dalam php

PHPz
PHPzasal
2023-04-10 09:36:043423semak imbas

PHP ialah bahasa skrip sebelah pelayan yang digunakan secara meluas dalam pembangunan web dan boleh melaksanakan banyak fungsi web. Antaranya, memuat naik gambar adalah tugas biasa dalam pembangunan web Artikel ini akan memperkenalkan kaedah memuat naik gambar dalam PHP.

1. Konsep asas

Sebelum memperkenalkan kaedah memuat naik gambar, kita perlu memahami beberapa konsep asas:

  1. $_FILES

$_FILES ialah tatasusunan super-global yang mengandungi maklumat tentang semua fail yang dimuat naik dan anda boleh menggunakannya untuk mengendalikan fail yang dimuat naik.

ialah borang dalam HTML yang digunakan untuk memuat naik fail Kawalan ialah juga pintu masuk untuk memuat naik gambar.

  1. Jenis MIME

Jenis MIME ialah satu cara untuk mengenal pasti jenis fail yang dimuat naik, dan ia juga merupakan salah satu kaedah untuk menentukan sama ada fail yang dimuat naik ialah imej .

2. Kaedah memuat naik imej

Anda boleh menggunakan fungsi move_uploaded_file() untuk memuat naik fail dalam PHP Sintaksnya ialah:

bool move_uploaded_file ( string $filename , string. $destination )

Antaranya, $filename mewakili nama fail yang dimuat naik, dan $destination mewakili nama fail sasaran yang disimpan. Nilai pulangan bagi fungsi ini ialah nilai Boolean, menunjukkan sama ada operasi itu berjaya atau tidak.

Berikut ialah contoh kod mudah untuk memuat naik imej:

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);     // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800)   // 小于 200 kb
&& in_array($extension, $allowedExts))
{
    if ($_FILES["file"]["error"] > 0)
    {
        echo "错误: " . $_FILES["file"]["error"] . "<br>";
    }
    else
    {
        echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
        echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
        echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";

        // 判断存储文件夹是否存在,不存在则创建文件夹
        if (!file_exists("upload"))
        {
            mkdir("upload");
        }
        // move_uploaded_file() 函数将上传的文件移动到指定目录
        move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
        echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
    }
}
else
{
    echo "非法的文件格式或者文件大小超过限制,请检查后重试。";
}
?>

Dalam kod ini, jenis dan saiz fail yang dibenarkan untuk dimuat naik ditakrifkan terlebih dahulu dan fail yang dimuat naik diperolehi oleh menggunakan nama akhiran fungsi explode() dan gunakan fungsi end() untuk mendapatkan elemen terakhir tatasusunan (iaitu, nama akhiran fail). Memandangkan jenis MIME tidak dipercayai, kaedah ini perlu digunakan untuk penghakiman.

Kemudian, tentukan sama ada muat naik berjaya dengan menentukan sama ada nilai $_FILES "fail" ialah 0. Jika berjaya, imej yang dimuat naik akan dialihkan ke folder yang ditentukan dan maklumat dan laluan fail akan dipaparkan.

3. Ringkasan

Artikel ini memperkenalkan kaedah memuat naik imej dalam PHP, termasuk konsep asas yang berkaitan dan pelaksanaan kod untuk memuat naik imej. Dengan menggunakan fungsi move_uploaded_file() dan pernyataan bersyarat yang berkaitan, fungsi memuat naik imej boleh direalisasikan. Pada masa yang sama, untuk memastikan keselamatan, pembangun perlu memberi perhatian untuk mengehadkan jenis dan saiz fail yang dimuat naik untuk mengelakkan kemalangan.

Atas ialah kandungan terperinci Bagaimana untuk memuat naik gambar 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