PHP 实现本地多文件同时上传到服务器端不同文件夹下
2014-04-14 15:41
585 查看
首先,启动tomact服务器,建立两个文件分别为:test.php 与uploadprocess.php。闲话少说,直接上代码,大家看看就明白了。
test.php代码:
再写一个uploadprocess.php用来处理文件上传的后续操作。
原理从代码中很容易看出来。我是使用了PHP中array_key_exists()函数对三个不同的file 文件进行分别存取大服务器端三个路径下的。如果你想将这三个路径存储到数据库中,也可以将最后三行注释的部分,拼进你的sql语句中,写入数据库。这样在前台页面某处展示的时候,就方便多了。
第一次发博客,如果对大家有帮助,就顶一个。代码中还有很多有待改善的地方,大牛们看了,请不要喷我哈。学习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一周,请见谅吧!
相关文章推荐
- 用ActiveXObject可实现从客户端本地上传文件到服务器端的功能
- [android]模拟Http表单,实现本地文件(图片等)上传到服务器端
- PHP使用之上传文件到本地服务器(实现上传文件后页面内容不动、解决上传文件命名乱码后缀问题)
- php实现文件上传到指定文件夹,文件路径或名字存入数据库,如何实现啊
- 使用php对百度云BCS上传本地文件的实现及原理分析
- 使用fileupload实现文件上传,并自动生成不同的文件夹
- rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync【文件从本地上传到linux服务器有什么更好的工具?】
- 在OneThink(ThinkPHP3.2.3)中整合阿里云OSS的PHP-SDK2.0.4,实现本地文件上传流程
- php实现文件上传到指定文件夹,文件路径或名字存入数据库,如何实现啊
- 简单实现php上传文件功能
- 【转载】使用jsp实现文件上传到服务器或者从服务器上下载文件到本地计算机完整说明版
- php实现文件上传的代码
- jsf实现同时上传不定数量的文件
- php iframe实现无刷新文件上传(无需ajax)
- PHP实现批量重命名某个文件夹下所有文件的方法
- PHP 文件上传进度条实现程序
- php+ajax实现图片文件上传功能实例
- 如何使用PHP实现文件上传
- php+ajax实现图片文件上传功能实例