加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP文件上传之多文件上传的实现思路

发布时间:2020-12-13 03:06:52 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:PHP文件上传之多文件上传的实现思路》要点: 本文介绍了PHP实例:PHP文件上传之多文件上传的实现思路,希望对您有用。如果有疑问,可以联系我们。 多文件上传的两种环境 PHP编程 ①使用多个name值 PHP编程 input type="file" name="file1"input t

《PHP实例:PHP文件上传之多文件上传的实现思路》要点:
本文介绍了PHP实例:PHP文件上传之多文件上传的实现思路,希望对您有用。如果有疑问,可以联系我们。

多文件上传的两种环境PHP编程

①使用多个name值
PHP编程

<input type="file" name="file1">
<input type="file" name="file2">
<input type="file" name="file3">
<input type="file" name="file4">

a.点击提交之后接收到的数据格局PHP编程

Array
(
[file1] => Array
(
[name] => 8.png
[type] => image/png
[tmp_name] => G:wamptmpphp737.tmp
[error] => 0
[size] => 200
)
[file2] => Array
(
[name] => 28.png
[type] => image/png
[tmp_name] => G:wamptmpphp738.tmp
[error] => 0
[size] => 6244
)
[file3] => Array
(
[name] => 54a296f8n6787b34c.png
[type] => image/png
[tmp_name] => G:wamptmpphp739.tmp
[error] => 0
[size] => 3143
)
[file4] => Array
(
[name] => 54c0573dncb4db6f7.jpg
[type] => image/jpeg
[tmp_name] => G:wamptmpphp788.tmp
[error] => 0
[size] => 5404
)
)

从这种格式可以看出来,每一个文件对应一个数组单位PHP编程

所以使用foreach遍历数组,并对每个数组单位进行文件上传函数调用PHP编程

b.点击提交后的操作PHP编程

①接管上传的文件信息PHP编程

$file = $_FILES;PHP编程

②引入上传函数PHP编程

include('./functions.php');

③设置文件保留路径PHP编程

$path = './uploads/'; // 此目录必要手动创建

④调用文件上传函数PHP编程

foreach($file as $v){
$info = uploadFile($v,$path);
⑤判断上传状态
if($info['isok']){
echo '上传胜利'.$info['message'];
} else {
echo '上传失败'.$info['message'];
}
}

---------------------------------------------------------------PHP编程

②使用单个name值PHP编程

a.第一种写法PHP编程

<input type='file' name="file[]">
<input type='file' name="file[]">
<input type='file' name="file[]">

b.第二种写法PHP编程

<input type="file" name="file[]" multiple>

c.点击提交之后,接收到的数据格局PHP编程

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:wamptmpphp85E5.tmp
[1] => G:wamptmpphp85E6.tmp
[2] => G:wamptmpphp8635.tmp
)
[error] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
[size] => Array
(
[0] => 200
[1] => 16503
[2] => 19443
)
)
)

从这种格式可以看出来,是将上传的文件信息分开保留到每个下标中.
所以要做的事情就是拼接出来一个完整的文件信息,一个一维数组PHP编程

Array(
[name] => 54c0573dncb4db6f7.jpg
[type] => image/jpeg
[tmp_name] => G:wamptmpphp788.tmp
[error] => 0
[size] => 5404
)

所以要进行的操作,是遍历$_FILES['file'] 然后从中掏出每条上传文件的信息PHP编程

d.点击提交后的操作PHP编程

①接管上传的文件信息PHP编程

$file = $_FILES['file'];PHP编程

②引入上传函数PHP编程

include('./functions.php');PHP编程

③设置文件保留路径PHP编程

$path = './uploads/'; // 此目录必要手动创建PHP编程

④挪用文件上传函数PHP编程

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);

⑤断定上传状态PHP编程

if($info['isok']){
echo '上传胜利'.$info['message'];
} else {
echo '上传失败'.$info['message'];
}
}

a.遍历$file['name'] 只是为了获取$keyPHP编程

b.每遍历一次,掏出相对应下标的文件信息,赋值给一个新数组中对应的键PHP编程

如第一次 $key = 0;PHP编程

$data['name'] = $file['name'][0]; // 相当于掏出了第一个文件的名字
$data['type'] = $file['type'][0]; // 相当于掏出了第一个文件的类型

...
PHP编程

第一次遍历完成之后PHP编程

$data = array(
[name] => 54c0573dncb4db6f7.jpg
[type] => image/jpeg
[tmp_name] => G:wamptmpphp788.tmp
[error] => 0
[size] => 5404
);

这样就掏出了第一个文件的所有信息
PHP编程

然后调用上传函数,进行文件上传处置
PHP编程

第二次遍历时$key=1,相称于获取第二个上传文件的信息PHP编程

欢迎参与《PHP实例:PHP文件上传之多文件上传的实现思路》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读