PHP 实现本地多文件同时上传到服务器端不同文件夹下
来源:互联网 发布:pc端看图软件 编辑:程序博客网 时间:2024/04/19 06:29
首先,启动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一周,请见谅吧!
0 0
- PHP 实现本地多文件同时上传到服务器端不同文件夹下
- fileupload实现上传文件到服务器文件夹下
- Servlet3.0实现上传文件到服务器端
- FCKEditor 实现不同用户上传图片到各自文件夹下的配置
- php实现文件上传到指定文件夹,文件路径或名字存入数据库,如何实现啊
- php实现文件上传到指定文件夹,文件路径或名字存入数据库,如何实现啊
- 多线程实现文件(图片)从客户端并行上传到服务器端--多客户端实现文件上传到服务器
- FileUpload上传文件同时将文件保存到指定文件夹(附带判断上传文件大小)
- PHP实现远程下载文件到本地
- [PHP][Function]实现将一个文件夹下的所有文件及文件夹复制到另一个文件夹里(保持原有结构
- 多文件同时上传实现方法
- 实现多个文件同时上传
- Struts2实现同时多文件上传
- HTML5-WebSocket实现多文件同时上传
- HTML5-WebSocket实现多文件同时上传
- android客户端把SD卡文件上传到服务器端并保存在PC硬盘文件夹中
- curl上传文件到远程,php版本不同的做法
- (PHP)用cURL从本地上传文件到FTP服务器
- lua 在unity 中的协程使用
- 工作原理的重要性
- PDF文件字体嵌入问题
- asp.net页生命周期图解---msdn
- TCP/IP协议,HTTP协议
- PHP 实现本地多文件同时上传到服务器端不同文件夹下
- 六步破解win2008R2登录密码
- /proc/sys/net/ipv4/配置Linux网络参数
- 原码, 反码, 补码 详解
- (2)PHP日期和时间(显示本地化)
- 趋势与持仓,个股与指数
- GetLastError 返回值代表含义大全
- 哪些因素不利于网站优化
- 笔记本电脑上网出现问题的解决方法