下面这段php代码如何实现多图上传
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下面这段php代码如何实现多图上传相关的知识,希望对你有一定的参考价值。
我的程序现在INPUT图片上传是可以用的,两个INPUT同时上传也是可以的,我要实现的是在一个INPUT同时上传多张图片。遇到的问题是这样的
上传组件上传数据的格式是
Array
(
[name] => 222.png
[type] => image/png
[tmp_name] => C:\Windows\Temp\php2D75.tmp
[error] => 0
[size] => 21132
)
当我将INPUT格式改成这样
<input type="file" name="field_$row['refid'][]" multiple />
上传数据时,得到的数据是下面这样,数据无法上传
Array
(
[name] => Array
(
[0] => alexa.png
[1] => baidu.png
[2] => bbs.png
)
[type] => Array
(
[0] => image/png
[1] => image/png
[2] => image/png
)
[tmp_name] => Array
(
[0] => C:\Windows\Temp\phpC6A9.tmp
[1] => C:\Windows\Temp\phpCED5.tmp
[2] => C:\Windows\Temp\phpD175.tmp
)
[error] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
[size] => Array
(
[0] => 526638
[1] => 160341
[2] => 360070
)
)
我的问题是如何将上面这些数组转成最上面的数组格式?下面是我的程序源码
if($_FILES)
foreach($_FILES as $key => $file)
if(strexists($key, 'field_'))
$refid = intval(str_replace('field_', '', $key));
$field = $fields[$refid];
if($refid && $field && $file['name'] && $field['type'] == 'image')
$entry = array();
$entry['reid'] = $reid;
$entry['rerid'] = 0;
$entry['refid'] = $refid;
echo "<pre>";
print_r($file);
echo "</pre>";
die;
$ret = file_upload($file);
if(!$ret['success'])
message('上传图片失败, 请稍后重试.');
$entry['data'] = trim($ret['path']);
$datas[] = $entry;
别听楼上的胡说,html5的表单,支持批量选择文件批量上传。楼主你这样,没必要去处理数组,只要遍历$_FILES['tmp_name'])就可以了。
$i=0;foreach($_FILES['tmp_name'])
$type=$_FILES['type'][$i];
//之后根据type移动tmp文件到相应的文件夹。
$i++;
参考技术A 一个input只能放一个文件 不可以放多个文件的 要实现多图上传 那就使用js动态生成多个input
phpcms V9 前台自定义表单中提交多图字段
phpcms V9 中的自定义字段支持图片上传和多图上传,但是上图片后 看不到的,因为TA直接输出了数组,没有编译过!
想直接在表单后台显示其上传的图片只需要修改表单的模版即可,下面是修改的文件和相关代码:
首先找到表单的页面模版,“../phpcms/modules/formguide/templates/formguide_info_view.tpl.php”,打开并编辑!
<?php if(is_array($forminfos_data)){ foreach($forminfos_data as $key => $form){ ?> <tr> <td>< ?php echo $fields[$key][‘name‘]?>:</td> <td>< ?php echo $form?></td> </tr> <?php } } ?>
将其替换为:
<?php foreach($forminfos_data as $key => $val): ?> <tr> <?php if(is_array($val) && $key === ‘imgs‘): ?> <td><?php echo $fields[$key][‘name‘] ?>:</td> <td><?php foreach($val as $v): ?> <a href="<?php echo $v[‘url‘] ?>" target="_blank" ><img src=\‘#\‘" /></a> <?php endforeach ?></td> <?php else: ?> <td><?php echo $fields[$key][‘name‘] ?>:</td> <td><?php echo $val ?></td> <?php endif ?> </tr> <?php endforeach ?>
效果截图:
本文出自 “Jack_phpcms” 博客,请务必保留此出处http://maifang158.blog.51cto.com/5433990/1928753
以上是关于下面这段php代码如何实现多图上传的主要内容,如果未能解决你的问题,请参考以下文章