A-A+

PHP实现多文本框上传功能

2013年10月18日 PHP技术文章 评论 7 条 阅读 560 views 次

在网站应用中,经常会遇到要求我们进行多文本框上传文件,比如在企业站当中,要求上传多张企业荣誉照片,或者在购物站当中,要求一次上传产品的几个角度等。。在上传图片时,需要我们自定义上传图片张数,也就是上传的文本域了,当需要添加新图片时,只需要添加一个文本框的上传即可,在提交时,可以同时提交多张图片。

预览效果如下,可自己美化一下:

这里就涉及到两个文件,一个是前台显示上传的文本框,在无刷新的情况下新增上传的文本框,可以自定义,这里没有进行定义,可以根据自己的需要进行修改,源码如下:

[cc lang="html"]



文件上传







[/code]

另一个文件就是 PHP 处理的文件了,主要功能就是处理前面提交过来的图片文件了,是一个普通的上传功能函数,可以自定义上传的目录和上传文件的类型,和一般的上传函数基本都是一样的,唯一一个不一样的就是处理批量提交过来的图片了,这里利用的是数组进行的处理,可以进行深入的研究,源码文件如下:

<?php
//	$file			上传表单中的文件上传框名称
//	$fileType		允许上传的文件类型,用 "|" 分割
//	$ifleUrl		文件的存储路径
//	$rename			是否重命名
// 	$msg			消息提示

function uploadfile($key,$file,$fileType,$fileUrl,$rename=true)
{
	if(!file_exists($fileUrl))
	{
		if(!mkdir($fileUrl,0777))
		{
			return false;
			exit;
		}
	}
	
	if($_FILES&#91;$file&#93;&#91;'error'&#93;&#91;$key&#93; != 0)
	{
		return false;
		exit;
	}
	
	$suffix = strtolower(end(explode(".",$_FILES&#91;$file&#93;&#91;'name'&#93;&#91;$k
ey&#93;)));
	$arr = explode("|",$fileType);	
	if(!in_array($suffix,$arr))
	{
		return false;
		exit;
	}
	
	if($rename)
	{
		$saveUrl = $fileUrl.date("YmdHis").mt_rand(100,99
9).".".$suffix;
	}else{
		$saveUrl = $fileUrl.$_FILES&#91;$file&#93;&#91;'name'&#93;&#91;$key&#93;;
	}
	
	if(move_uploaded_file($_FILES&#91;$file&#93;&#91;'tmp_name'&#93;&#91;$key&#93;,$s
aveUrl))
	{
		return true;
	}else{
		return false;
	}
}

$file = "upfile";
$fileType = "jpg|gif|txt|chm";
$fileUrl = "upload/";

if(isset($_FILES&#91;$file&#93;))
{
	foreach($_FILES&#91;$file&#93;&#91;'name'&#93; as $key => $row)
	{
		$msg = uploadfile($key,$file,$fileType,$fileUrl);
		if($msg)
		{
			echo $_FILES[$file]['name'][$ke
y].'&nbsp;&nbsp;上传成功<br/>';
		}else{
			echo '<font color="#FF0000">'.$_FILE
S[$file]['name'][$key].'&nbsp;&nbsp;上传失败</font><br/>';
		}
	}
}else{
	echo '<font color="#FF0000">请上传有效的文件</font>';
}
?>

7 条留言  访客:7 条  博主:0 条

  1. 恋羽

    在我印象中这些东西用js做会有比较好的用户体验

  2. 海涛

    功能试用。支持一下。

  3. 这个功能很实用,批量上传才爽。

  4. PHP二次开发

    不错的东西,简单,实用。

  5. 海棠秋客

    支持原创

  6. 社新社

    这个做企业内网的网络应用时候,很用的上了。

  7. 海棠果

    不错 技术贴 顶你一下

给我留言