2016/4/19 ①单个文件上传 ②上传图片后 预览图片

 

1,f1.php

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body>
<!-- 作业:在网上找上传图片预览的代码 上传服务器 再预览-->
<form action="f1chuli.php" method="post" enctype="multipart/form-data"><input type="file" name="file"></input><input type="submit" value="上传"></input>
</form>
</body>
</html>

2,f1chuli.php

 1 <?php 
 2 header("content-type:text/html;charset=utf-8");
 3 //上传文件的所有信息都保存在$_FILES["file"]数组中;
 4 //echo $_FILES["file"]["name"];//取文件名
 5 
 6 //echo $_FILES["file"]["type"];//取到 文件类型
 7 
 8 //echo $_FILES["file"]["size"];//取到  文件大小
 9 
10 //echo $_FILES["file"]["tmp_name"]; //文件在服务器临时存放的路径 临时位置 
11 
12 //echo $_FILES["file"]["error"];//判断上传是否出错
13 
14 //文件上传
15 
16 //1,判断是否出错
17 if ($_FILES["file"]["error"]) {
18     echo "上传出错!";
19 }
20 else{
21     //2.加限制条件
22     if ($_FILES["file"]["type"]=="image/jpeg" && $_FILES["file"]["size"]<1024000)
23     {
24         //处理文件名
25         $str= date("YmdHisms",time());//加时间戳 区别相同文件名
26         //3.造一个存储的路径
27         $url="./img/".$str.$_FILES["file"]["name"];//如果还有重复 拼加用户名
28         
29 
30         $filename=iconv("UTF-8","gb2312", $url);
31         //将路径的编码格式转换为国标,防止文件乱码
32         if (file_exists($filename)) {
33             echo "该文件已经存在!";
34         }
35         else{
36 
37 
38         //4.存储
39         move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
40 
41             }
42     }
43 
44     else
45     {
46         echo "上传文件的类型不符合要求";
47     }
48 }
49 
50 
51  ?>
View Code

显示效果:

 

②上传图片   图片预览  两种形式

 

1,ceshi.php    +    shangchuan.php   这种方法 必须在两个文件同级目录下

    手动建立imags文件

 

ceshi.php

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>无标题文档</title>
 6 </head>
 7 
 8 <body>
 9 <form id="sc" action="shangchuan.php" target="hidden_frame" method="post" enctype="multipart/form-data">
10     <div id="yl" style="margin-left:0px; width:144px; height:170px; background-size:144px 170px; background-image:url(images/l7a3.jpg)">
11         <input type="file" name="file" style="width:144px; height:170px; float:left; opacity:0;" width="146" onchange="document.getElementById('sc').submit()"/>
12         <img id="pic" style="display:none"/>
13     </div>
14     <input type="button" value="保存"/>
15 </form>
16 <iframe style="display:none;" name="hidden_frame" id="hidden_frame">
17 </iframe>
18 
19 </body>
20 <script type="text/javascript">
21 //回调函数
22 function showimg(aa)
23 {
24     var l = document.getElementById("yl");
25     var p = document.getElementById("pic");
26     
27     l.style.backgroundImage = "url("+aa+")";
28     p.setAttribute("src",aa);
29 }
30 </script>
31 </html>
View Code

 

shangchuan.php

 1 <?php
 2    //上传文件限制
 3    if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 10000000))
 4   {
 5       //文件上传是否出错
 6       if ($_FILES["file"]["error"] > 0)
 7     {
 8         echo "上传出错: " . $_FILES["file"]["error"] . "<br />";
 9     }
10       else
11     {
12         //输出文件信息
13         /*echo "文件名: " . $_FILES["file"]["name"] . "<br />";
14         echo "类型: " . $_FILES["file"]["type"] . "<br />";
15         echo "大小: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
16         echo "临时路径: " . $_FILES["file"]["tmp_name"] . "<br />";*/
17     
18     //判断文件是否已存在
19     if (file_exists("images/" . $_FILES["file"]["name"]))
20       {
21           echo "<script language='javascript'>alert('".$_FILES["file"]["name"]."已经存在!')</script>";
22            
23       }
24     else
25       {
26           //造存储路径
27           $filename = "images/" . $_FILES["file"]["name"];
28           //移动图片至保存路径,解决中文乱码问题
29             move_uploaded_file($_FILES["file"]["tmp_name"],iconv("UTF-8","gb2312",$filename));
30           
31             echo "该文件存储在了: " . "images/" . $_FILES["file"]["name"];
32           echo "<script language='javascript'>parent.showimg('".$filename."')</script>";
33       }
34     }
35   }
36   else
37   {
38       echo "上传失败";
39   }
40 
41 ?>
View Code

显示效果: 最初   到   点击选图       再到文件显示

 

2,shangchuanyulan.php   不许要手动建立   同级目录下  会自动生成upload 文件夹

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <title>无标题文档</title>
  6 <?php 
  7 
  8 $uptypes=array('image/jpg', //上传文件类型列表 
  9 'image/jpeg', 
 10 'image/png', 
 11 'image/pjpeg', 
 12 'image/gif', 
 13 'image/bmp', 
 14 'image/x-png'); 
 15 $max_file_size=5000000; //上传文件大小限制, 单位BYTE 
 16 $destination_folder="upload/"; //上传文件路径 
 17 $watermark=1; //是否附加水印(1为加水印,其他为不加水印); 
 18 $watertype=1; //水印类型(1为文字,2为图片) 
 19 $waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中); 
 20 $waterstring="newphp.site.cz"; //水印字符串 
 21 $waterimg="xplore.gif"; //水印图片 
 22 $imgpreview=1; //是否生成预览图(1为生成,其他为不生成); 
 23 $imgpreviewsize=1/2; //缩略图比例 
 24 ?> 
 25 <style type="text/css">body,td{font-family:tahoma,verdana,arial;font-size:11px;line-height:15px;background-color:white;color:#666666;margin-left:20px;} 
 26 strong{font-size:12px;} 
 27 aink{color:#0066CC;} 
 28 a:hover{color:#FF6600;} 
 29 aisited{color:#003366;} 
 30 a:active{color:#9DCC00;} 
 31 table.itable{} 
 32 td.irows{height:20px;background:url("index.php?i=dots" repeat-x bottom}</style> 
 33 </head> 
 34 <body> 
 35 <center><form enctype="multipart/form-data" method="post" name="upform"> 
 36 上传文件: <br><br><br> 
 37 <input name="upfile" type="file" style="width:200;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17"> 
 38 <input type="submit" value="上传" style="width:30;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17"><br><br><br> 
 39 允许上传的文件类型为:jpg|jpeg|png|pjpeg|gif|bmp|x-png|swf <br><br> 
 40 <a href="index.php">返回</a> 
 41 </form> 
 42 <?php 
 43 if ($_SERVER['REQUEST_METHOD'] == 'POST') 
 44 { 
 45 if (!is_uploaded_file($_FILES["upfile"]["tmp_name"])) 
 46 //是否存在文件 
 47 { 
 48 echo "<font color='red'>文件不存在!</font>"; 
 49 exit; 
 50 } 
 51 $file = $_FILES["upfile"]; 
 52 if($max_file_size < $file["size"]) 
 53 //检查文件大小 
 54 { 
 55 echo "<font color='red'>文件太大!</font>"; 
 56 exit; 
 57 } 
 58 if(!in_array($file["type"], $uptypes)) 
 59 //检查文件类型 
 60 { 
 61 echo "<font color='red'>只能上传图像文件或Flash!</font>"; 
 62 exit; 
 63 } 
 64 if(!file_exists($destination_folder)) 
 65 mkdir($destination_folder); 
 66 $filename=$file["tmp_name"]; 
 67 $image_size = getimagesize($filename); 
 68 $pinfo=pathinfo($file["name"]); 
 69 $ftype=$pinfo["extension"]; 
 70 $destination = $destination_folder.time().".".$ftype; 
 71 if (file_exists($destination) && $overwrite != true) 
 72 { 
 73 echo "<font color='red'>同名文件已经存在了!</a>"; 
 74 exit; 
 75 } 
 76 if(!move_uploaded_file ($filename, $destination)) 
 77 { 
 78 echo "<font color='red'>移动文件出错!</a>"; 
 79 exit; 
 80 } 
 81 $pinfo=pathinfo($destination); 
 82 $fname=$pinfo["basename"]; 
 83 echo " <font color=red>已经成功上传</font><br>文件名: <font color=blue>".$destination_folder.$fname."</font><br>"; 
 84 echo " 宽度:".$image_size[0]; 
 85 echo " 长度:".$image_size[1]; 
 86 if($watermark==1) 
 87 { 
 88 $iinfo=getimagesize($destination,$iinfo); 
 89 $nimage=imagecreatetruecolor($image_size[0],$image_size[1]); 
 90 $white=imagecolorallocate($nimage,255,255,255); 
 91 $black=imagecolorallocate($nimage,0,0,0); 
 92 $red=imagecolorallocate($nimage,255,0,0); 
 93 imagefill($nimage,0,0,$white); 
 94 switch ($iinfo[2]) 
 95 { 
 96 case 1: 
 97 $simage =imagecreatefromgif($destination); 
 98 break; 
 99 case 2: 
100 $simage =imagecreatefromjpeg($destination); 
101 break; 
102 case 3: 
103 $simage =imagecreatefrompng($destination); 
104 break; 
105 case 6: 
106 $simage =imagecreatefromwbmp($destination); 
107 break; 
108 default: 
109 die("<font color='red'>不能上传此类型文件!</a>"); 
110 exit; 
111 } 
112 imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); 
113 imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); 
114 switch($watertype) 
115 { 
116 case 1: //加水印字符串 
117 imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black); 
118 break; 
119 case 2: //加水印图片 
120 $simage1 =imagecreatefromgif("xplore.gif"); 
121 imagecopy($nimage,$simage1,0,0,0,0,85,15); 
122 imagedestroy($simage1); 
123 break; 
124 } 
125 switch ($iinfo[2]) 
126 { 
127 case 1: 
128 //imagegif($nimage, $destination); 
129 imagejpeg($nimage, $destination); 
130 break; 
131 case 2: 
132 imagejpeg($nimage, $destination); 
133 break; 
134 case 3: 
135 imagepng($nimage, $destination); 
136 break; 
137 case 6: 
138 imagewbmp($nimage, $destination); 
139 //imagejpeg($nimage, $destination); 
140 break; 
141 } 
142 //覆盖原上传文件 
143 imagedestroy($nimage); 
144 imagedestroy($simage); 
145 } 
146 if($imgpreview==1) 
147 { 
148 echo "<br>图片预览:<br>"; 
149 echo "<a href=\"".$destination."\" target='_blank'><img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); 
150 echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\" border='0'></a>"; 
151 } 
152 } 
153 ?> 
154 </center> 
155 </body> 
156 </html>
View Code

显示效果: 从未选    到选中    到上传后  显示预览

 上传相同的文件  因上传时间的不同导致上传文件的名称不同  加时间戳  和 后缀

文件目录显示效果:

 

3,待整理   文件名  随机获取     

 

转载于:https://www.cnblogs.com/haodayikeshu/p/5408690.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android项目里集成Cordova详解

2019独角兽企业重金招聘Python工程师标准>>> 一 安装nodejs二 cmd创建Android项目三 导入工程 运行一下四 调用插件五 Android studio环境下将CordovaLib作为依赖导入六 自定义插件七 java类中的一些问题八 在CordovaActivity中添加原生View组件 九 在Fragment里使用…

php 判断浏览器是ie,js判断是否是ie浏览器

怎么去看浏览器的内核等信息 ---- js的全局对象window子属性navigator.userAgent&#xff0c;这个属性是包含了浏览器信息的相关信息&#xff0c;包括我们需要的浏览器内核navigator.userAgent这个值取出来是个字符串&#xff0c;可以通过string的 indexOf方法或者正则匹配来验…

【JAVA基础】一:聊聊笔试常见到的 “==、equal” 比较是否相等的内在差别

开始本文之前&#xff0c;先让我们记住一个口诀&#xff08;这个口诀只针对基础的类比如String、Integer等&#xff0c;如果是自定义的类&#xff0c;需要看equal的具体实现&#xff09;&#xff1a;equal比较其值&#xff0c; 比较地址 这两天在走查代码的时候发现一个童鞋&am…

java 有参数的构造函数如何注入_Spring5参考指南:依赖注入

依赖注入依赖注入就是在Spring创建Bean的时候&#xff0c;去实例化该Bean构造函数所需的参数&#xff0c;或者通过Setter方法去设置该Bean的属性。Spring的依赖注入有两种基于构造函数的依赖注入和基于setter的依赖注入。基于构造函数的依赖注入构造函数的注入是通过构造函数的…

C#学习笔记四: C#3.0自动属性匿名属性及扩展方法

前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好处, 下一遍会单独介绍Lambda表达式. 这篇主要包括的内容有: 自动属性,隐式类型,对象集合初始化…

mongdb集群3.4 shard 模式

从图中可以看到有四个组件&#xff1a;mongos、config server、shard、replica set。mongos&#xff1a;数据库集群请求的入口&#xff0c;所有的请求都通过mongos进行协调&#xff0c;不需要在应用程序添加一个路由选择器&#xff0c;mongos自己就是一个请求分发中心&#xff…

alpha值计算 qcolor_量化交易与机器学习(四):如何研究alpha因子

算法交易策略由指示何时购买或出售资产以产生相对于基准&#xff08;例如指数&#xff09;的较高回报的信号驱动。 资产回报率中未通过暴露于该基准而无法解释的部分称为alpha&#xff0c;因此旨在产生这种不相关收益的信号也称为alpha因子。本章主要介绍alpha因子一、从数据到…

项目启动及需求分析(靳嘉豪、胡新宇、李晨曦、杨航、李瑶)团队作业

&#xff08;1&#xff09; 这次团队我们给我们团队起的名字是&#xff1a;桥上吊刀刀倒吊着 队员分别为&#xff1a;靳嘉豪、胡新宇、李晨曦、李瑶、杨航。 队训为&#xff1a;黑化肥挥发发灰会挥发。 胡新宇&#xff1a;http://www.cnblogs.com/hxy94264/ 靳嘉豪&#xff1a;…

20155229 实验一《Java开发环境的熟悉》实验报告

20155229 实验一《Java开发环境的熟悉》实验报告 实验内容 1.使用JDK编译、运行简单的Java程序&#xff1b; 2.使用Idea 编辑、编译、运行、调试Java程序。 实验步骤 &#xff08;一&#xff09;命令行下Java程序开发 输入 mkdir 20155229命令建立实验目录&#xff0c;用ls查看…

PHP代码20个实用技巧(转)

这些技巧特别是封装的&#xff0c;相对路径的还是挺好的&#xff0c;本身来自微信公众号&#xff0c;但是我担心以后删除&#xff0c;所以在我的博客上备份一下&#xff08;微信公众号为:菜鸟教程&#xff09; 在这篇文章中我们将看看一些关于PHP开发有用的提示和技巧&#xff…

python基础数据类型的相关知识点

1、字符串的函数join >>> s "Hello" >>> s1 s.join("你好")#将字符串Hello插入到你好中 >>> s1 你Hello好 >>> s2 "Tanxu".join("你好吗")#将字符串Tanxu插入到你好吗中 >>> s2 你Ta…

最长无重复字符子串?

2019独角兽企业重金招聘Python工程师标准>>> 题目要求&#xff1a; 给定一个字符串S&#xff0c;在该字符串中找到一个最长的没有重复字符的子串。 转载于:https://my.oschina.net/datacube/blog/875545

selenium框架安装及webdriver安装

本文介绍的是selenium安装及webdriver安装、小实例 1、selenium介绍 selenium是一个用于web应用程序测试的工具。 Selenium测试直接运行在浏览器&#xff0c;就向真正的用户操作一样。 支持的浏览器包括IE(7,8,9,10,11),Mazilla Firefox,Safari,Google Chrome,OperaL浏览器 这个…

突然想到了王自如

刚刚不知道为什么突然想到了王自如。可能是因为下午在腾讯视频首页看到了老罗罗永浩的一个访谈节目&#xff0c;然后神经元一短路的原因吧。 想到王自如不禁又联想到了王自如和罗永浩的那场著名的撕逼之战。场面上王自如是被罗老师教做人的一个结果。然后就很长时间没有听到关于…

UOJ Test Round 3

A.几何冲刺 感觉自己的智商爆炸。 显然是按照极角序排列之后依次加点&#xff0c;判断是否有点。 保证一个点在两个角的范围内就OK了啊&#xff0c;想了半天叉积。。。 #include "triangles.h" #include <bits/stdc.h> #define for1(a,b,i) for(int ia,end_b;i…

PPP认证方式pap chap chap2

2019独角兽企业重金招聘Python工程师标准>>> PPP点到点协议&#xff08;Point to Point Protocol&#xff0c;PPP&#xff09;是IETF&#xff08;Internet Engineering Task Force&#xff0c;因特网工程任务组&#xff09;推出的点到点类型线路的数据链路层协议。它…

Nexus-配置vPC 实验三

配置EvPC&#xff08;增强的vPC&#xff09;&#xff0c;下面两个FEX可以同时被两个N5K管理。注意&#xff1a;FEX只支持静态的Channel-group&#xff08;mode on&#xff09; N5K-1配置&#xff1a;配置FEXN5K-1&#xff08;config&#xff09;#feature fexN5K-1&#xff08;c…

python现在时间 命令,Python 日期格式和时间以及当前时间和时间戳

Python 程序在运行的时候可能需要获得当前的时间。在这个时候我们需要导入 datetime 包。获得当前时间例如&#xff0c;可以使用下面的代码获得当前的日期。today datetime.date.today()print("Todays date:", today)在上面的代码中&#xff0c;将会输出&#xff1a…

go grpc 深入笔记

为什么80%的码农都做不了架构师&#xff1f;>>> grpc 深入 生命周期 grpc 的生命周期由4种请求的方式不同而不同&#xff1a;(详细查看router示例) 普通rpc: 客户端发送请求&#xff0c;通知服务端调用rpc服务&#xff0c;服务端返回请求&#xff0c;如果状态"…

RSA加密算法简单分析

预备知识 1&#xff09;RSA是第一个比较完善的公开密钥算法&#xff0c;它既能用于加密&#xff0c;也能用于数字签名。RSA以它的三个发明者Ron Rivest, Adi Shamir, Leonard Adleman的名字首字母命名&#xff0c;这个算法经受住了多年深入的密码分析&#xff0c;虽然密码分析者…