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
Lepaskan: 2024-12-08 17:39:12
asal
549 orang telah melayarinya

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>
Salin selepas log masuk

PHP:

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

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;
}
Salin selepas log masuk

Langkah 3: Direktori Muat Naik Terhad

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

/uploads
Salin selepas log masuk

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
}
Salin selepas log masuk

Langkah 5: Selamat Mendapatkan Imej

PHP:

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

Langkah 6: Tambahan Ciri-ciri

Pengesahan Saiz Fail Maksimum:

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

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan