Rumah >rangka kerja php >ThinkPHP >Bagaimana untuk melaksanakan fungsi muat naik fail dalam ThinkPHP6

Bagaimana untuk melaksanakan fungsi muat naik fail dalam ThinkPHP6

WBOY
WBOYasal
2023-06-20 08:35:133842semak imbas

Dengan pembangunan Internet yang berterusan, semakin banyak laman web perlu melaksanakan fungsi muat naik fail. Dalam ThinkPHP6, ia juga sangat mudah untuk melaksanakan fungsi muat naik fail. Hari ini kami akan memperkenalkan cara untuk melaksanakan fungsi muat naik fail dalam ThinkPHP6.

1. Konfigurasikan parameter muat naik fail

Sebelum mula melaksanakan fungsi muat naik fail, anda perlu menetapkan parameter muat naik fail dalam fail konfigurasi ThinkPHP6. Cari fail konfigurasi projek config/app.php, dan kemudian tambah kod berikut dalam tatasusunan params:

'upload' => [
    'maxSize' => 1024 * 1024 * 10, //文件上传的最大大小
    'exts' => ['jpg', 'gif', 'png', 'jpeg'], //允许上传的文件后缀
    'rootPath' => app()->getRootPath() . 'public/uploads/', //文件上传的根目录
    'savePath' => '', //文件保存的子目录
    'subName' => ['date', 'Ymd'], //子目录名称的命名规则
],

Di sini kami menetapkan saiz muat naik fail maksimum kepada 10MB, dan akhiran fail yang dibenarkan ialah jpg, gif, dan png. , jpeg empat format, direktori akar untuk muat naik fail ialah public/uploads/, dan peraturan penamaan untuk nama subdirektori ditetapkan untuk dinamakan mengikut tarikh (tahun, bulan, hari).

2. Laksanakan fungsi muat naik fail

Selepas mengkonfigurasi parameter muat naik fail, anda boleh mula melaksanakan fungsi muat naik fail. Tulis kod berikut dalam pengawal:

public function upload()
{
    $file = request()->file('image');
    if ($file) {
        $info = $file->validate(['ext' => 'jpg,png,gif,jpeg'])->move(config('upload.rootPath'));
        if ($info) {
            $data = [
                'code' => 0,
                'msg' => '上传成功',
                'url' => config('upload.rootPath') . $info->getSaveName(),
            ];
        } else {
            $data = [
                'code' => 1,
                'msg' => $file->getError(),
                'url' => '',
            ];
        }
    } else {
        $data = [
            'code' => 1,
            'msg' => '请选择要上传的文件',
            'url' => '',
        ];
    }

    return json($data);
}

Di sini kami mula-mula mendapatkan fail yang dimuat naik melalui kaedah request()->file('image') untuk menentukan sama ada fail itu wujud kemudian gunakan validate() kaedah untuk mengesahkan muat naik Sahkan akhiran fail untuk memastikan bahawa format fail yang dimuat naik oleh pengguna adalah betul akhirnya menggunakan kaedah move() untuk memuat naik fail dan mengembalikan hasil muat naik yang berjaya atau muat naik yang gagal.

3. Pelaksanaan halaman

Akhir sekali, kita perlu melaksanakan fungsi muat naik fail pada halaman tersebut:

<form id="upload-form" action="<?php echo url('upload'); ?>" method="post" enctype="multipart/form-data">
    <input type="file" name="image" id="image" accept="image/jpeg,image/png,image/gif">
</form>
<button id="btn-upload" type="button">上传</button>

<script>
$(function() {
    $('#btn-upload').click(function() {
        var formData = new FormData($('#upload-form')[0]);
        $.ajax({
            url: $('#upload-form').attr('action'),
            type: 'post',
            data: formData,
            contentType: false,
            processData: false,
            success: function(res) {
                if (res.code === 0) {
                    alert(res.msg);
                    $('#image').val('');
                } else {
                    alert(res.msg);
                }
            },
            error: function(xhr, status, error) {
                alert('上传错误:' + error);
            }
        });
    });
});
</script>

Di sini kami menambah borang pada halaman. halaman untuk dimuat naik Nilai nama teg input fail ialah 'imej', dan kemudian gunakan kaedah ajax() jQuery untuk memuat naik data borang ke pengawal dalam mod FormData, dan gesa sewajarnya selepas muat naik berjaya atau gagal.

4. Ringkasan

Melalui kod di atas, kami telah berjaya melaksanakan fungsi muat naik fail dalam ThinkPHP6. Pada masa yang sama, kita juga mesti memberi perhatian kepada keselamatan, memastikan fail yang dimuat naik oleh pengguna berada dalam format dan saiz yang betul, mengelakkan muat naik fail daripada mendatangkan bahaya kepada sistem, dan memastikan keselamatan pengguna dan sistem.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi muat naik fail dalam ThinkPHP6. 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