PHP文件上传之多文件上传的实现思路
《PHP实例:PHP文件上传之多文件上传的实现思路》要点: 多文件上传的两种环境PHP编程 ①使用多个name值 <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 ) ) ) 从这种格式可以看出来,是将上传的文件信息分开保留到每个下标中. 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编程 $data = array( [name] => 54c0573dncb4db6f7.jpg [type] => image/jpeg [tmp_name] => G:wamptmpphp788.tmp [error] => 0 [size] => 5404 ); 这样就掏出了第一个文件的所有信息 然后调用上传函数,进行文件上传处置 第二次遍历时$key=1,相称于获取第二个上传文件的信息PHP编程 欢迎参与《PHP实例:PHP文件上传之多文件上传的实现思路》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |