博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP文件上传-多文件上传思路
阅读量:6455 次
发布时间:2019-06-23

本文共 3197 字,大约阅读时间需要 10 分钟。

  hot3.png

2.多文件上传的两种情况①使用多个name值						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'];				}			}---------------------------------------------------------------②使用单个name值	a.第一种写法									b.第二种写法						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							)					)			)					从这种格式可以看出来,是将上传的文件信息分开保存到每个下标中。		所以要做的事情就是拼接出来一个完整的文件信息,一个一维数组			Array(					[name] => 54c0573dncb4db6f7.jpg					[type] => image/jpeg					[tmp_name] => G:\wamp\tmp\php788.tmp					[error] => 0					[size] => 5404				)						所以要进行的操作,是遍历$_FILES['file'] 然后从中取出每条上传文件的信息			d.点击提交后的操作		①接收上传的文件信息		$file = $_FILES['file'];					②引入上传函数			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.遍历$file['name'] 只是为了获取$key			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,相当于获取第二个上传文件的信息

转载于:https://my.oschina.net/mpf/blog/610087

你可能感兴趣的文章
JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记4
查看>>
C#技术------垃圾回收机制(GC)
查看>>
漫谈并发编程(三):共享受限资源
查看>>
【转】github如何删除一个仓库
查看>>
Linux系统编程——进程调度浅析
查看>>
大数据Lambda架构
查看>>
openCV_java 图像二值化
查看>>
状态模式
查看>>
删除CentOS / RHEL的库和配置文件(Repositories and configuraiton files)
查看>>
DJANGO变动库的一次真实手动经历
查看>>
8个基本的引导工具的网页设计师
查看>>
【下载分】C语言for循环语句PK自我活动
查看>>
VC++获得微秒级时间的方法与技巧探讨(转)
查看>>
HDOJ-1010 Tempter of the Bone
查看>>
MySQL my.cnf参数配置优化详解
查看>>
HDU/HDOJ 2102 A计划 广度优先搜索BFS
查看>>
JavaNIO基础02-缓存区基础
查看>>
阿里 Blink 正式开源,重要优化点解读
查看>>
日本开设无人机专业,打造无人机“人才市场”
查看>>
Exchange 2013 EAC之管理员重置普通用户密码
查看>>