Rumah rangka kerja php ThinkPHP Bagaimana untuk memuat naik gambar dalam thinkphp

Bagaimana untuk memuat naik gambar dalam thinkphp

Apr 11, 2023 am 10:31 AM

Dalam pembangunan Web, muat naik imej sering digunakan sebagai salah satu fungsi yang diperlukan, dan ThinkPHP, rangka kerja sumber terbuka berdasarkan PHP, menyediakan pelbagai kaedah untuk melaksanakan fungsi muat naik imej. Di bawah ini kami akan memperkenalkan kaedah pelaksanaan muat naik imej berdasarkan ThinkPHP.

Langkah satu: Konfigurasikan parameter yang diperlukan

Dalam fail konfigurasi config.php, kita perlu mengkonfigurasi parameter seperti laluan muat naik fail, had saiz imej dan had jenis fail terlebih dahulu. Konfigurasi khusus adalah seperti berikut:

return [
    'upload_path' => './uploads/', //上传文件路径
    'img_max_size' => 2 * 1024 * 1024, //最大上传图片大小
    'img_allow_types' => 'jpg,png,gif,jpeg', //允许上传的文件类型
];
Salin selepas log masuk

Langkah 2: Tulis kod muat naik imej

Dalam ThinkPHP, kami boleh melaksanakan fungsi muat naik imej dengan menggunakan kelas muat naik. Mula-mula import kelas muat naik:

use think\facade\Request;
use think\facade\Filesystem;

class ImageUpload
{
    public function upload()
    {
        $img_file = Request::file('img'); //获取上传的图片文件
        $img_path = config('upload_path'); //获取上传路径
        $max_size = config('img_max_size'); //获取最大文件尺寸
        $allow_types = config('img_allow_types'); //获取允许上传的类型

        //判断上传文件是否有效、大小是否符合、类型是否正确
        if (!$img_file->isValid()) {
            return ['code' => 1, 'msg' => '上传图片无效'];
        }

        if ($img_file->getSize() > $max_size) {
            return ['code' => 2, 'msg' => '上传图片大小超过限制'];
        }

        if (!in_array($img_file->extension(), explode(',', $allow_types))) {
            return ['code' => 3, 'msg' => '上传图片类型不支持'];
        }

        //上传文件
        $file_info = $img_file->move($img_path);
        if ($file_info === false) {
            return ['code' => 4, 'msg' => '上传图片失败,请重试'];
        }

        //返回上传成功信息
        $file_name = $file_info->getSaveName();
        $file_url = Filesystem::getDiskConfig('public', ['url' => '/'])->getVisibility()->url($img_path . $file_name);
        return ['code' => 0, 'msg' => '上传图片成功', 'url' => $file_url];
    }
}
Salin selepas log masuk

Langkah 3: Panggil kod muat naik imej

Seterusnya, kita boleh panggil kod muat naik imej dalam pengawal dan dapatkan hasil muat naik:

public function uploadImage()
{
    $result = (new ImageUpload())->upload();
    echo json_encode($result);
}
Salin selepas log masuk

Akhir sekali, kita hanya perlu menggunakan ajax di halaman hadapan untuk memuat naik fail imej ke pelayan:

<form id="image-form" action="/uploadImage" method="post" enctype="multipart/form-data">
    <input type="file" id="img-file" name="img" accept="image/*">
    <button type="submit">上传</button>
</form>

<script>
$(document).on('submit', '#image-form', function (event) {
    event.preventDefault(); 
    var formData = new FormData(document.getElementById('image-form'));
    $.ajax({
        url: '/uploadImage',
        type: 'post',
        data: formData,
        contentType: false,
        processData: false,
        dataType: 'json',
        success: function (res) {
            //处理上传结果
        },
        error: function (xhr, textStatus, errorThrown) {
            console.log(errorThrown);
        }
    });
});
</script>
Salin selepas log masuk

Ringkasnya, melalui langkah di atas, imej berdasarkan ThinkPHP Fungsi muat naik selesai.

Atas ialah kandungan terperinci Bagaimana untuk memuat naik gambar dalam thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)