通过表单上传图片是网站开发中经常需要的功能,并且为避免相同文件名上传覆盖掉之前的文件还需要将上传的图片重新命名,下面简单介绍一下php中图片上传并重命名的实现原理:

 1 <?php
 2 //引用文件
 3 include('../config/sessionCheck.php');
 4 include('../config/conn.inc.php');
 5 include('../config/func.inc.php');
 6 
 7 //获取表单提交过来的数据,brandlit为缩略图
 8 $brandname = $_POST['brandname'];
 9 $letter = $_POST['letter'];
10 $brandlit = $_FILES['brandlit'];
11 
12 //取到缩略图图片名
13 $name = $brandlit['name'];
14 
15 //以最后一次出现的.字符来获取图片后缀,并将得到的文件名转为小写
16 $type = strtolower(substr($name,strrpos($name,'.')+1));
17 
18 //定义允许上传的图片类型
19 $allow_type = array('jpg','jpeg','gif','png');
20 
21 //判断文件类型是否被允许上传
22 if(!in_array($type, $allow_type)){
23   return ;
24 }
25 
26 //判断是否是通过表单POST上传
27 if(!is_uploaded_file($brandlit['tmp_name'])){
28   return ;
29 }
30 
31 //定义上传文件的存放路径
32 $upload_path = "../upload/images/";
33 
34 //通过反转及分割获取图片的后缀
35 $string = strrev($_FILES['brandlit']['name']);
36 $array = explode('.',$string);
37 $ex = strrev($array[0]);
38 
39 //将上传图片重命名为日期加100-999的随机数并加上后缀名
40 $rename = date("Y").date("m").date("d").date("H").date("i").date("s").rand(100, 999).".".$ex;
41 
42 //移动图片到指定文件夹
43 if(move_uploaded_file($brandlit['tmp_name'],$upload_path.$rename)){
44     
45     //组合成最终的图片名及完整路径并过滤掉路径前的两个..
46     $finallit = substr_replace($upload_path,'',0,2).$rename;
47     
48     $sql = "insert into brand(brandname,letter,brandlit,dates) values('$brandname','$letter','$finallit',UNIX_TIMESTAMP())";
49 
50     if($rst = mysql_query($sql)){
51         echo "<script>alert('添加成功!')</script>";
52         echo "<script>location='listBrand.php'</script>";
53     }else{
54         echo "<script>alert('添加失败!')</script>";
55         echo "<script>location='addBrand.php'</script>";
56     }
57 
58 }else{
59     echo "<script>alert('添加失败!')</script>";
60     echo "<script>location='addBrand.php'</script>";
61 }
62 ?>

更多相关文章

  1. Wordpress 外网访问时不显示图片解决办法
  2. php将图片以二进制形式保存到mysql数据库的解决方法
  3. 图片在页面内随意飘动,遇到边界还会反弹
  4. 超全超实用的Javascript类库和jQuery插件大全之一:图片,地图和图形
  5. 使用没有后端脚本的Angularjs上传文件(例如PHP,JAVA等)
  6. 一个html+css+js的轮播图片 -- 仅供参考
  7. 没有AJAX的拖放文件上传,在前台同步?
  8. 简单实现一个文件上传的进度条
  9. Ajax的实用技术——用户的注意力从页面的其他区域到转移选择的图

随机推荐

  1. Android系统构架分析和应用程序目录结构
  2. 各种类型Android Market了解
  3. android遮罩层
  4. Android for opencv(1)android使用opencv基
  5. 【Android 进阶】Android Home 键监听
  6. Android获取在桌面上有图标的app列表的方
  7. Android Camera 模块分析
  8. android CallCard.java/updateState(Phon
  9. android 连接webservice
  10. android 通过百度地图定位获取坐标在导航