Dalam bab sebelum ini, kami telah memperkenalkan tutorial memuat naik fail menggunakan PHP.
Rakan akan mempunyai soalan, bagaimana saya boleh memuat naik berbilang fail ke pangkalan data?
Perkara utama ialah memasukkan beberapa fail dan klik hantar untuk memuat naik Kemudian semua fail akan dimuat naik bersama-sama, dan setiap fail akan diberi laluan baharu.
memberikan idea:
Mula-mula dapatkan maklumat setiap fail yang dimuat naik dan masukkannya ke dalam tatasusunan tersuai
<?php $uploadFiles = array(); ?>
dan kemudian lulus Gelung foreach dipaparkan
<?php foreach($upfile as $key =>$value) { foreach($value as $k => $v){ $uploadFiles[$k][$key]=$v; } } print_r($uploadFiles); ?>
Paparan keputusan adalah serupa
<?php /* 这里展示同时上传2个文件信息 Array ( [0] => Array ( [name] => 1.png [type] => image/png [tmp_name] => C:\Windows\php82E9.tmp [error] => 0 [size] => 65646 ) [1] => Array ( [name] => 2.png [type] => image/png [tmp_name] => C:\Windows\php82EA.tmp [error] => 0 [size] => 70463 ) ) */ ?>
Akhir sekali, syarat sekatan untuk menerbitkan fail yang ditunjukkan dalam bab sebelumnya dimasukkan ke dalam gelung untuk penghakiman
Dapatkan Nama fail rawak menggunakan masa semasa sebagai awalan nama fail baharu, dan digabungkan semula dengan nama akhiran ke dalam pangkalan data.
<?php //上传后的文件名定义(随机获取一个文件名(保持后缀名不变)) $fileinfo = pathinfo($v["name"]);//解析上传文件名字 do{ $newfile = date("Y-m-d,H-i-s") . rand(1000, 9999) . "." . $fileinfo["extension"]; } while (file_exists($path . $newfile)); ?>
Sudah tentu, memautkan jadual pangkalan data dan memuat naik fail juga merupakan langkah penting
<?php $link = mysqli_connect('localhost','username','password') or die("数据库连接失败!"); mysqli_select_db($link,'test'); mysqli_set_charset($link,'utf8'); $filepath = $path.$newfile; $name = $v['name']; $size = $v['size']; $sql = "insert into img(id,name,size,pic) value(null,'$name','$size','$filepath')"; mysqli_query($link,$sql); mysqli_close($link); ?>