介绍
这篇文章给大家介绍利用PHP怎么对多个文件进行上传,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
上传多文件
1。在对多文件信息进行操作前,需要构建文件信息,通过buildInfo函数将三维数组转换成便于文件操作的二维数组。
function buildInfo () { 小姐:美元才能=,0; foreach 才能;(_FILES 美元;as $ v) { ,,,//判断是否是单文件 ,,,如果(is_string (v(& # 39;名字# 39;])){ ,,,,,文件[我]美元美元,=,v美元; ,,,,,我+ +美元; 还有,,,}{ ,,,,,//多文件 ,,,,,foreach (v美元[& # 39;名字# 39;],as key 美元;=祝辞,美元值){ ,,,,,,,美元文件[$ i][& # 39;名字# 39;],=,美元价值; ,,,,,,,美元文件[$ i][& # 39;大小# 39;],=,v美元[& # 39;大小# 39;][$ key]; ,,,,,,,美元文件[$ i] [& # 39; tmp_name& # 39;],=, v美元[& # 39;tmp_name& # 39;] [$ key]; ,,,,,,,美元文件[$ i][& # 39;类型# 39;],=,v美元[& # 39;类型# 39;][$ key]; ,,,,,,,美元文件[$ i][& # 39;错误# 39;],=,v美元[& # 39;错误# 39;][$ key]; ,,,,,,,我+ +美元; ,,,,,} ,,,} ,,} return 才能;$文件; }
单文件和多文件的判断在于文件数组的类型,单文件(二维数组),多文件(三维数组).
2。文件上传函数及参数
代码如下:
函数还是($ path=皍ploads",,$ allowExt=阵列(“jpg",“gif",“png",“wbmp"),最大尺寸=1048576美元,美元imgFlag=true)
路径,保存目录.allowExt,允许扩展名数组.maxSize最大上传文件大小.imgFlag,图片文件标识符。
3。判断保存文件的目录是否存在
如果(! file_exists(路径)美元){ ,,,mkdir(0777美元的路径,,,,真的); 以前,,}>4。传入构建好的文件信息,保存到文件
小姐:美元=,0; files 美元;=,buildInfo ();5。判断文件的错误类型
foreach (files 美元;as $文件){ ,,,if($文件[& # 39;错误# 39;],==,UPLOAD_ERR_OK) { 其他}{ ,,,switch ($文件[& # 39;错误# 39;)){ ,,,,,case 1: ,,,,,,,mes 美元;=,“超过配置文件上传文件大小“; ,,,,,,,休息; ,,,,,case 2: ,,,,,,,mes 美元;=,“超过了表单设置“; ,,,,,,,休息; ,,,,,case 3: ,,,,,,,mes 美元;=,“文件部分被上传“; ,,,,,,,休息; ,,,,,case 4: ,,,,,,,mes 美元;=,“没有文件上传“; ,,,,,,,休息; ,,,,,case 6: ,,,,,,,mes 美元;=,“没找到临时目录“; ,,,,,,,休息; ,,,,,case 7: ,,,,,,,mes 美元;=,“文件不可写“; ,,,,,,,休息; ,,,,,case 8: ,,,,,,,mes 美元;=,“由于PHP的扩展程序中断了文件上传“; ,,,,,,,休息; ,,,}6。限制文件类型
如果(美元文件[& # 39;错误# 39;],==,UPLOAD_ERR_OK) { ,,,,,ext 美元;=,getExt($文件[& # 39;名字# 39;]); ,,,,,如果(! in_array (ext美元,,allowExt美元)){ ,,,,,,,退出(“非法文件类型“); ,,,,,}7。限制是否为真的图片类型
如果(imgFlag美元){ ,,,,,,,如果(! getimagesize($文件[& # 39;tmp_name& # 39;])) { ,,,,,,,,,退出(“不是真的图片类型“); ,,,,,,,} ,,,,,}8。判断文件大小
如果(美元文件[& # 39;大小# 39;],祝辞,最大容量美元){ ,,,,,,,退出(“文件过大“); ,,,,,}9。判断文件是否通过帖子上传
如果(! is_uploaded_file($文件[' tmp_name& # 39;])) {, 退出(“文件不是通过HTTP 职位上传”),, }10。重命名文件(唯一且不重复)并保存到目标目录
filename 美元;=,getUniName()干净干净。ext美元; 美元$ destination =,路径!”/懊涝募? 如果(函数($文件[& # 39;tmp_name& # 39;],,目的地美元)){ ,,,,,,,mes 美元;=,“文件上传成功“; null null null null null利用PHP怎么对多个文件进行上传