PHP 实现本地多文件同时上传到服务器端不同文件夹下

首先,启动tomact服务器,建立两个文件分别为:test.php 与uploadprocess.php。闲话少说,直接上代码,大家看看就明白了。

test.php代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
   
</head>
<h2>多文件上传</h2>

	<form action="uploadprocess.php" method="post" name="product_add" enctype="multipart/form-data" >
		<table  valign="middle" align="center">
	
				<tr>
					<td align="right">产品图片上传:</td>
					<td><input type="file" name="pro_upfile"/></td>
				</tr>
				<tr>
					<td align="right">PDF文件上传:</td>
					<td><input type="file" name="pdf_upfile"/></td>
				</tr>
				<tr>
					<td align="right">参数图片上传:</td>
					<td><input type="file" name="para_upfile"/></td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<input type="submit" name="submit" value="提交" />
						<input type="reset" name="reset" value="重置" style="margin-left:20px;" />
					</td>
				</tr>
		</table>	
	</form>
</html>

再写一个uploadprocess.php用来处理文件上传的后续操作。

<?php
//time().rand(1,10000).substr(string,strrpos(string,"."));  文件名不会重复
//判断pro_upfile文件,并进行上传
if(array_key_exists("pro_upfile",$_FILES)){  //$_FILES中是否有name为pro_upfile的上传文件

$file_size = $_FILES['pro_upfile'][size];
if($file_size>2*1024*1024){
	echo "文件过大,不能上传大于2M的文件!";
	exit();
}
//过滤文件类型
$file_type = $_FILES['pro_upfile'][type];
if ($file_type!='image/jpg'&&$file_type!='image/jpeg') {
	echo "文件类型只能是jpg文件!";
	exit();
}

if(is_uploaded_file($_FILES['pro_upfile']['tmp_name'])){
	
	$uploaded_file = $_FILES['pro_upfile']['tmp_name'];
    
	$user_path = $_SERVER['DOCUMENT_ROOT']."/file/up";
// 	$user_path = iconv("utf-8", "gb2312", $user_path);  解决路径中文乱码的问题
	if(!file_exists($user_path)){
		
		mkdir($user_path,0777,true); //创建多级目录

	}
	//产品图片路径
	$move_to_profile = $user_path."/".$_FILES['pro_upfile']['name'];
	
    if(move_uploaded_file($uploaded_file,iconv("utf-8","gb2312",$move_to_profile))){
    	// echo "<pre>";
		// print_r($_FILES);
		// echo "</pre>";
		// echo "------------------------";
		// echo "<br/>	$move_to_profile";
		// echo $_FILES['pro_upfile']['name']."上传OK";
    }else{
    	echo "上传失败";
    }	
	}else{
		echo "上传失败";
}

}

//判断pdf_upfile文件,并进行上传	
if(array_key_exists("pdf_upfile",$_FILES)){

$file_size = $_FILES['pdf_upfile'][size];
if($file_size>2*1024*1024){
	echo "文件过大,不能上传大于2M的文件!";
	exit();
}
//过滤文件类型
$file_type = $_FILES['pdf_upfile'][type];
if ($file_type!='image/jpg'&&$file_type!='image/jpeg') {
	echo "文件类型只能是jpg文件!";
	exit();
}

if(is_uploaded_file($_FILES['pdf_upfile']['tmp_name'])){
	
	$uploaded_file = $_FILES['pdf_upfile']['tmp_name'];
    
	$user_path = $_SERVER['DOCUMENT_ROOT']."/file/down";
// 	$user_path = iconv("utf-8", "gb2312", $user_path);
	if(!file_exists($user_path)){
		
		mkdir($user_path,0777,true); //创建多级目录		

	}
	//PDF文件存放路径
	$move_to_pdffile = $user_path."/".$_FILES['pdf_upfile']['name'];
	if(move_uploaded_file($uploaded_file,iconv("utf-8","gb2312",$move_to_pdffile))){
	    // echo $move_to_pdffile;
		// echo "<br/>------------------------";
		// echo $_FILES['pdf_upfile']['name']."上传OK";
    }else{
    	echo "上传失败";
    }	
}else{
		echo "上传失败";
}

}

//判断para_upfile文件,并进行上传
if(array_key_exists("para_upfile",$_FILES)){

$file_size = $_FILES['para_upfile'][size];
if($file_size>2*1024*1024){
	echo "文件过大,不能上传大于2M的文件!";
	exit();
}
//过滤文件类型
$file_type = $_FILES['para_upfile'][type];
if ($file_type!='image/jpg'&&$file_type!='image/jpeg') {
	echo "文件类型只能是jpg文件!";
	exit();
}

if(is_uploaded_file($_FILES['para_upfile']['tmp_name'])){
	
	$uploaded_file = $_FILES['para_upfile']['tmp_name'];
    
	$user_path = $_SERVER['DOCUMENT_ROOT']."/file/fly";
// 	$user_path = iconv("utf-8", "gb2312", $user_path);
	if(!file_exists($user_path)){
		
		mkdir($user_path,0777,true); //创建多级目录
		
	}
	$move_to_parafile = $user_path."/".$_FILES['para_upfile']['name'];
	
    if(move_uploaded_file($uploaded_file,iconv("utf-8","gb2312",$move_to_parafile))){
		// echo $move_to_parafile;
		// echo "<br/>------------------------";
		// echo $_FILES['para_upfile']['name']."上传OK";
    }else{
    	echo "上传失败";
    }	
	}else{
		echo "上传失败";
}

}
	echo "<br/>$move_to_profile";
	echo "<br/>$move_to_pdffile";
	echo "<br/>$move_to_parafile";
?>

原理从代码中很容易看出来。我是使用了PHP中array_key_exists()函数对三个不同的file 文件进行分别存取大服务器端三个路径下的。如果你想将这三个路径存储到数据库中,也可以将最后三行注释的部分,拼进你的sql语句中,写入数据库。这样在前台页面某处展示的时候,就方便多了。

 

第一次发博客,如果对大家有帮助,就顶一个。代码中还有很多有待改善的地方,大牛们看了,请不要喷我哈。学习PHP一周,请见谅吧!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值