>  기사  >  백엔드 개발  >  여러 파일 uploads_php 예제를 위한 PHP 파일 업로드 구현 아이디어

여러 파일 uploads_php 예제를 위한 PHP 파일 업로드 구현 아이디어

WBOY
WBOY원래의
2016-05-16 19:59:101868검색

여러 파일 업로드의 두 가지 상황

①여러 이름 값 사용

<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, 이는 두 번째 업로드된 파일의 정보를 얻는 것과 같습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.