PHP 개발 시 MySql 데이터베이스에 여러 파일 업로드 (1)
이전 장에서는 PHP를 사용하여 파일을 업로드하는 방법에 대한 튜토리얼을 소개했습니다.
친구들이 궁금한 점이 있을 것입니다. 데이터베이스에 여러 파일을 어떻게 업로드할 수 있나요?
핵심은 여러 파일을 넣고 제출을 클릭하여 업로드하는 것입니다. 그러면 모든 파일이 함께 업로드되고 각 파일에는 새로운 경로가 부여됩니다.
아이디어 제공:
먼저 업로드된 각 파일의 정보를 가져와서 사용자 정의 배열에 넣습니다
<?php $uploadFiles = array(); ?>
그런 다음 foreach 루프를 통해 표시합니다
<?php foreach($upfile as $key =>$value) { foreach($value as $k => $v){ $uploadFiles[$k][$key]=$v; } } print_r($uploadFiles); ?>
결과 표시는 비슷합니다
<?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 ) ) */ ?>
마지막으로, 이전 장에서는 파일 게시에 대한 제한 사항이 판단을 위해 루프에 배치되는 것을 보여줍니다. 임의의 파일 이름을 얻기 위해 현재 시간이 새 파일 이름의 접두사로 사용되고 접미사 이름이 다시 결합됩니다. 데이터 베이스.
<?php //上传后的文件名定义(随机获取一个文件名(保持后缀名不变)) $fileinfo = pathinfo($v["name"]);//解析上传文件名字 do{ $newfile = date("Y-m-d,H-i-s") . rand(1000, 9999) . "." . $fileinfo["extension"]; } while (file_exists($path . $newfile)); ?>
물론 데이터베이스 테이블을 연결하고 파일을 업로드하는 것도 빼놓을 수 없는 부분이죠
<?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); ?>