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()]); } }
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>
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]); }
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()));
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!