Rumah > rangka kerja php > ThinkPHP > Bagaimana untuk melaksanakan operasi muat naik fail berbilang dalam ThinkPHP6?

Bagaimana untuk melaksanakan operasi muat naik fail berbilang dalam ThinkPHP6?

王林
Lepaskan: 2023-06-12 09:07:03
asal
1595 orang telah melayarinya

Dengan kemajuan berterusan teknologi Internet, semakin banyak tapak web dan aplikasi memerlukan operasi muat naik fail. Dalam konteks ini, ThinkPHP6, sebagai rangka kerja PHP yang sangat baik, juga menyediakan kaedah operasi yang mudah untuk memuat naik berbilang fail. Artikel ini akan memperkenalkan cara melakukan operasi muat naik berbilang fail dalam ThinkPHP6.

1. Kod yang berkaitan dengan memuat naik fail

Dalam ThinkPHP6, kod untuk memuat naik fail terletak dalam fail pengawal. Berikut ialah sekeping kod untuk memuat naik satu fail:

public function upload()
{
    //获取上传的文件对象
    $file = request()->file('file');
    //将上传的文件移动到指定目录
    $info = $file->move('./uploads');
    if ($info) {
        //上传成功,返回文件名和路径
        return json(['code' => 0, 'msg' => '上传成功', 'data' => ['file_name' => $info->getFilename(), 'file_path' => '/uploads/'.$info->getSaveName()]]);
    } else {
        //上传失败,返回错误信息
        return json(['code' => 1, 'msg' => $file->getError()]);
    }
}
Salin selepas log masuk

2 Langkah untuk memuat naik berbilang fail

Seterusnya, mari perkenalkan cara memuat naik berbilang fail dalam ThinkPHP6. Langkah-langkah khusus ialah:

1 Tambah berbilang kotak muat naik fail dalam antara muka bahagian hadapan dan tetapkan atribut nama kepada nilai yang sama.

<form enctype="multipart/form-data" method="post" action="#">
    <input type="file" name="files[]" multiple>
    <button type="submit">上传</button>
</form>
Salin selepas log masuk

2. Tetapkan kod untuk memuat naik berbilang fail dalam fail pengawal.

public function upload()
{
    $files = request()->file('files');
    $data = array();
    foreach ($files as $file) {
        $info = $file->validate(['size' => 1024*1024*10, 'ext' => 'jpg,png,gif'])->move('./uploads');
        if ($info) {
            $data[] = ['file_name' => $info->getFilename(), 'file_path' => '/uploads/'.$info->getSaveName()];
        } else {
            return json(['code' => 1, 'msg' => $file->getError()]);
        }
    }
    return json(['code' => 0, 'msg' => '上传成功', 'data' => $data]);
}
Salin selepas log masuk

Antaranya, request()->file('files') boleh mendapatkan berbilang objek fail yang dimuat naik dan memproses operasi setiap fail yang dimuat naik melalui lintasan gelung.

3. Tetapan parameter untuk memuat naik berbilang fail

Untuk memastikan keselamatan dan kesahihan memuat naik berbilang fail, kami juga boleh menetapkan beberapa parameter untuk mengehadkan saiz dan jenis fail yang dimuat naik, dsb. . Contohnya:

1 Hadkan saiz satu fail

Dalam kod sampel dalam artikel ini, kami lulus validate(['size' => 10241024 10, 'ext ' => 'jpg,png,gif']) untuk menetapkan saiz satu fail yang dimuat naik kepada tidak melebihi 10M.

2. Hadkan jenis fail

Dalam fungsi validate(), anda juga boleh mengehadkan jenis fail yang dimuat naik dengan menetapkan ext, contohnya: 'ext' => '

3. Namakan semula fail yang dimuat naik

Gunakan

$info = $file->move('./uploads', md5(uniqid()));
Salin selepas log masuk

untuk menetapkan nama fail yang dimuat naik kepada nombor rawak yang unik.

4. Ringkasan

Artikel ini memperkenalkan cara melakukan operasi muat naik berbilang fail dalam ThinkPHP6 Anda perlu menggunakan request()->file('files') untuk mendapatkan berbilang fail yang dimuat naik. Objek, gunakan gelung foreach untuk memproses setiap fail yang dimuat naik. Pada masa yang sama, kami juga boleh mengehadkan saiz dan jenis fail yang dimuat naik dengan menetapkan parameter untuk memastikan keselamatan dan kesahihan beberapa fail yang dimuat naik.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan operasi muat naik fail berbilang dalam ThinkPHP6?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan