여러 파일 업로드의 두 가지 상황
①여러 이름 값 사용
<input type="file" name="file1"> <input type="file" name="file2"> <input type="file" name="file3"> <input type="file" name="file4">
a. 제출을 클릭한 후 받은 데이터 형식
Array ( [file1] => Array ( [name] => 8.png [type] => image/png [tmp_name] => G:\wamp\tmp\php737.tmp [error] => 0 [size] => 200 ) [file2] => Array ( [name] => 28.png [type] => image/png [tmp_name] => G:\wamp\tmp\php738.tmp [error] => 0 [size] => 6244 ) [file3] => Array ( [name] => 54a296f8n6787b34c.png [type] => image/png [tmp_name] => G:\wamp\tmp\php739.tmp [error] => 0 [size] => 3143 ) [file4] => Array ( [name] => 54c0573dncb4db6f7.jpg [type] => image/jpeg [tmp_name] => G:\wamp\tmp\php788.tmp [error] => 0 [size] => 5404 ) )
이 형식에서 알 수 있듯이 각 파일은 배열 단위에 해당합니다
그러므로 foreach를 사용하여 배열을 순회하고 각 배열 단위에 대한 파일 업로드 기능을 호출하세요
b. 제출 클릭 후 작업
①업로드된 파일 정보 받기
$file = $_FILES;
②업로드 기능 소개
include('./functions.php');
③파일 저장 경로 설정
$path = './uploads/'; // 此目录需要手动创建
④파일 업로드 기능 호출
foreach($file as $v){ $info = uploadFile($v,$path); ⑤判断上传状态 if($info['isok']){ echo '上传成功'.$info['message']; } else { echo '上传失败'.$info['message']; } }
---------------------------------- --- ---
②단일 이름 값 사용
첫 번째 글쓰기 방법
<input type='file' name="file[]"> <input type='file' name="file[]"> <input type='file' name="file[]">
b. 두 번째 글쓰기 방법
<input type="file" name="file[]" multiple>
c. 제출을 클릭하면 데이터 형식이 수신됩니다.
Array ( [userpic] => Array ( [name] => Array ( [0] => 8.png [1] => 9b2d7581fba543ec9bcf95e91018915a.gif [2] => 12.jpg ) [type] => Array ( [0] => image/png [1] => image/gif [2] => image/jpeg ) [tmp_name] => Array ( [0] => G:\wamp\tmp\php85E5.tmp [1] => G:\wamp\tmp\php85E6.tmp [2] => G:\wamp\tmp\php8635.tmp ) [error] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [size] => Array ( [0] => 200 [1] => 16503 [2] => 19443 ) ) )
이 형식에서 알 수 있듯이 업로드된 파일 정보는 각 첨자에 별도로 저장됩니다.
그래서 우리가 해야 할 일은 완전한 파일 정보, 즉 1차원 배열을 엮어내는 것입니다
Array( [name] => 54c0573dncb4db6f7.jpg [type] => image/jpeg [tmp_name] => G:\wamp\tmp\php788.tmp [error] => 0 [size] => 5404 )
따라서 수행할 작업은 $_FILES['file']을 순회한 다음 업로드된 각 파일의 정보를 검색하는 것입니다.
d. 제출 클릭 후 작업
①업로드된 파일 정보 받기
$file = $_FILES['파일'];
②업로드 기능 소개
include('./functions.php');
③파일 저장 경로 설정
$path = './uploads/'; // 이 디렉터리는 수동으로 생성해야 합니다
④파일 업로드 기능 호출
foreach($file['name'] as $key=>$value){ $data['name'] = $file['name'][$key]; $data['type'] = $file['type'][$key]; $data['tmp_name'] = $file['tmp_name'][$key]; $data['error'] = $file['error'][$key]; $data['size'] = $file['size'][$key]; $info = uploadFile($data,$path);
⑤ 업로드 상태 확인
if($info['isok']){ echo '上传成功'.$info['message']; } else { echo '上传失败'.$info['message']; } }
a. $key를 얻기 위해 $file['name']을 탐색합니다
b. 탐색할 때마다 아래 첨자에 해당하는 파일 정보를 꺼내어 새 배열의 해당 키에 할당합니다.
예를 들어 처음에는 $key = 0입니다.
$data['name'] = $file['name'][0]; // 相当于取出了第一个文件的名字 $data['type'] = $file['type'][0]; // 相当于取出了第一个文件的类型
...
첫 번째 순회가 완료된 후
$data = array( [name] => 54c0573dncb4db6f7.jpg [type] => image/jpeg [tmp_name] => G:\wamp\tmp\php788.tmp [error] => 0 [size] => 5404 );
이렇게 하면 첫 번째 파일의 모든 정보가 검색됩니다
그런 다음 업로드 기능을 호출하여 파일 업로드 처리를 수행합니다
두 번째 순회 동안 $key=1, 이는 두 번째 업로드된 파일의 정보를 얻는 것과 같습니다