Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mencipta Skrip Muat Naik Imej Selamat?

Bagaimanakah Saya Boleh Mencipta Skrip Muat Naik Imej Selamat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-08 17:39:12516semak imbas

How Can I Create a Secure Image Upload Script?

Skrip Muat Naik Imej Selamat Lengkap

Pengenalan

Memastikan muat naik imej selamat adalah penting untuk melindungi pelayan dan data anda. Skrip ini menggariskan pendekatan komprehensif untuk mencapai keselamatan muat naik imej maksimum.

Langkah 1: Pengesahan Jenis Fail

Borang HTML:

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

PHP:

$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($_FILES['image']['type'], $allowedTypes)) {
    echo "Invalid file type";
    exit;
}

Langkah 2: Pengesahan Kandungan Imej Menggunakan Perpustakaan GD

$verifyimg = getimagesize($_FILES['image']['tmp_name']);
if ($verifyimg['mime'] != $_FILES['image']['type']) {
    echo "Invalid image content";
    exit;
}

Langkah 3: Direktori Muat Naik Terhad

Simpan imej yang dimuat naik di luar akar dokumen yang boleh diakses atau dalam direktori yang dilindungi:

/uploads

Langkah 4: Menyembunyikan Maklumat Fail daripada Pelawat

Namakan semula dan tukar sambungan imej yang dimuat naik, dan simpan maklumat asal dalam pangkalan data:

PHP:

$uploadfile = tempnam_sfx($uploaddir, ".tmp");
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
    // Database logic to store original name and MIME type
}

Langkah 5: Selamat Mendapatkan Imej

PHP:

$id = 1; // For example
$sql = "SELECT name, original_name, mime_type FROM uploads WHERE>

Langkah 6: Tambahan Ciri-ciri

Pengesahan Saiz Fail Maksimum:

if ($_FILES['image']['size'] > 1000000) {
    echo "File size too large";
    exit;
}

Kelas Muat Naik Imej:

Saya telah mencipta kelas Muat Naik Imej untuk memudahkan proses muat naik. Muat turun pakej dan ikut README untuk mendapatkan arahan.

Ketersediaan Sumber Terbuka:

Kelas ImageUpload kini tersedia di GitHub untuk sumbangan dan penambahbaikan komuniti.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Skrip Muat Naik Imej Selamat?. 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