PHP上传图片三个步骤

1. 上传图片三步骤

第一步:首先判断文件类型是否为图片格式,若是则上传文件;

第二步:然后重命名文件(一般都是避免上传文件重名,现在基本上都是以为时间来命名);

第三步:最后把文件上传到指定目录,成功上传后输出上传图片的预览。

2. 代码

(1)判断文件类型是否为图片类型

1 <?php
2 function type(){
3     return substr(strrchr($HTTP_POST_FILES[‘file‘][‘name‘],‘.‘),1);
4 }
5 ?>

说明:

  1. strrchr:查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
  2. substr: 取部份字符串。
  3. $HTTP_POST_FILES[‘file‘][‘name‘]:获取当前上传的文件全称.

(2)若是图片,则上传文件,然后根据时间重命名文件

 1  if(!in_arry(strtolower(type()),$type)){
 2     $text=implode(‘.‘,$type);
 3     echo "您只能上传以下类型文件: ",$text,"<br>";
 4  }else{
 5     $filename=explode(".",$_FILES[‘userfile‘][‘name‘]);//把上传的文件名以“.”号为准做一个数组。
 6     $time=date("m-d-H-i-s");//去当前上传的时间
 7     $filename[0]=$time;//取文件名t替换
 8     name=implode(".",$filename); //上传后的文件名
 9     $uploadfile=$uploaddir.$name;//上传后的文件名地址
10 } 

这个步骤也要分三步:

  首先,写一个能上传类型的数组; $type=array("jpg","gif","bmp","jpeg","png");

  然后,判断文件合法性;

  最后,给文件重名。


说明:

  • strtolower:把字符串的字母全部转换为小写字母.
  • in_array: 函数在数组中搜索给定的值。
  • implode:函数把数组元素组合为一个字符串
  • random:随机生成的数
  • $_FILES[‘userfile‘][‘name‘]:上传文件名称
  • $uploaddir:自己定义的变量。比如在同一个文件夹里面,你想把上传的文件放到这个文件夹的FILE文件夹下,你可以这样定义$uploaddir="./file/";注意写法
  • $_FILES["file"]["name"] - 被上传文件的名称
  • $_FILES["file"]["type"] - 被上传文件的类型
  • $_FILES["file"]["size"] - 被上传文件的大小,以字节计
  • $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
  • $_FILES["file"]["error"] - 由文件上传导致的错误代码

(3)最后把文件上传到指定目录,成功上传后输出上传图片的预览

1 if(move_uploaded_file($_FILES[‘userfile‘][‘tmp_name‘],$uploadfile)){
2     echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src=‘$uploadfile‘></center>";
3     echo "<br><center><a href=‘javascrīpt:history.go(-1)‘>继续上传</a></center>";
4 }else{
5     echo "传输失败!";
6 }

move_uploaded_file() 函数是PHP系统函数,将上传的文件移动到新位置。

语法: move_uploaded_file(file,newloc)

注释:本函数仅用于通过 HTTP POST 上传的文件。

注意:如果目标文件已经存在,将会被覆盖。

另附:W3School PHP文件上传

时间: 2024-10-20 14:27:04

PHP上传图片三个步骤的相关文章

Quatre 2D的绘图功能的三个步骤(上下文,绘图,渲染)

一.qurza2d是怎么将绘图信息和绘图的属性绘制到图形上下文中去的? 说明: 新建一个项目,自定义一个view类和storyboard关联后,重写该类中的drowrect方法. 画线的三个步骤: (1)获取上下文 (2)绘图 (3)渲染 要求:画两条单独的线 代码和效果图: 1 - (void)drawRect:(CGRect)rect 2 { 3 //获取上下文 4 CGContextRef ctx=UIGraphicsGetCurrentContext(); 5 //绘图 6 //第一条线

云智慧API监控 三个步骤提高业务增长

云智慧API监控 三个步骤提高业务增长 基于互联网.云计算和移动的应用正变得越来越普及,正在改变着人们的生活和工作方式.越来越多的应用服务封装成一系列的API开放出去供第三方使用,这使应用的开发周期和成本大大减少.游戏.支付.找餐馆.找酒店,移动社交.地理位置等在线服务应用都可以通过API数据接口调用的方式快速获取.因此,应用接口数据服务性能的差异会直接关系到你的业务运营质量.它将提高或减少你的业务收入,或使不满意的用户放弃你而选择你的竞争产品. 不要让第三方或后端服务毁了你的应用性能 Twit

专业精神的三个步骤

专业精神对于在我们这些在职场打拼的人来说非常重要.不论在哪个行业,也任何岗位,专业的做事都是同等的重要! 而达成专业化,个人觉得须要三个步骤. 一.最为主要的是保证质量 你所交付的工作成果的质量就决定了你的基本价值,交付的成果必须是符合要求的.否则就是质量只是关.并且不同的情境下的"要求"是不同. 以软件开发为例,自然是按指定的时间交付符合项目规划的软件产品.以房屋中介咨询为例,则是确保自己的信息准确及时地传递给客人.知之为知之.不知为不知! 一切先以自己的能力为基础.确保能达成自己的

搭建个人网站需要的三个步骤

记录一下自己的个人网站的搭建过程.其实网上有很多教程了,有的讲的好,很详细,有的就很笼统了,当然还有抄别人的,我这篇就纯属记录一下自己搭建的过程. 搭建一个个人网站要知道以下三个步骤, 得有自己的一个域名,通过这个域名,在只要可以上网有浏览器的地方,就可以访问. 得有一个空间,来放置网页文件. 将域名和空间绑定,也就是传说中的域名解析.同时,得有自己的网页文件才可以让别人访问的时候看到东西了. 做个比喻吧:域名就是你家地址,通过这个地址,别人才可以找到你家:空间就是你家的大小,多少平米啊,网页文

陈松松:从新手到高手学习视频营销的三个步骤

这是我写的第79篇原创视频营销文章 陈松松,6年视频营销实战经验 我希望大家要学会举一反三, 虽然讲的是视频营销, 但我更希望你学习之后能用在自己从事的行业中, 很多原理方法都是相通的. 最近很多朋友反馈有关视频营销的问题, 我们一个个分享,你们的留言我都在一一记录, 先分享视频营销新手到高手学习的三个步骤! 第一步:现成经验 万事开头难! 所以,一开始一定要挺住! 过了这个阶段,后面就非常轻松了. 其实进步最快的就是学习现成的经验, 不要啥都自己琢磨,虽然能琢磨出来,但 太花费时间,很多时候等

通过CSS3 实现响应式Web设计的三个步骤

如何通过CSS3 实现响应式Web设计: 分为三个步骤: (1)允许网页宽度自动调整.首先在页面头部中,我们需要加入这样一行:<meta name="viewport" content="width=device-width, initial-scale=1" />  viewport是网页默认的宽度和高度,网页的宽度默认就等于自己屏幕宽度(width=device-width),并且原始缩放比例(initial-scale=1)为1.0,也就是网页初始

ajax异步上传图片三种方案

转自:http://www.jb51.net/article/51180.htm 注:自己尝试了前两种,都可用: 目前常用的异步文件上传功能有几种,比较多见的如使用iframe框架形式,ajax功能效果,以及flash+php功能,下面介绍ajax与iframe实现异步文件上传的功能的例子. 方法一,利用jquery ajaxfileupload.js实现文件上传 其实就是实现无刷新式的文件上传.可采用IFRAME文件上传原理.实际上在用PHP上传文件时...只能用$_FILES形式,但是若我

新型实用专利申请的三个步骤有什么

当你拥有一项属于自己的专利时候,那么你是否也希望为自己的新型实用发明,而选择去申请一个相关的新型实用专利申请?如果是 的的话,我推荐你在申请之前应该了解一下相关的步骤,这样才能极大地通过相关的申请,这个时候了解一下相关的三大步骤,一起 来看看吧. 1.你在申请时要提供相关的技术书,也就是说要把你发明的东西用语言表达成文字之后上交,这个时候人们通常并不了解相关的操作 步骤,就需要一个专业性的人士帮助你完成新型实用专利申请.而这个步骤就是整个专利申请是非常重要的一个步骤,所以大家尽可 能的去找一个靠

办公电脑被监控?三个步骤进行排查

1 运行gpedit.msc?,启动组策略,依次打开 用户配置→ 管理模板→ 网络 → 网络连接 → 双击右边的"删除所有用户远程访问链接"→ 设置为"已启用". 注:如win 10 无法执行请按照文档最下方操作 2 用户管理中重置密码,注意尽量用复杂的秘密,比如用字母和数字组成的8位以上的密码:同样,给其他账户设置复杂到密码.注意自己一定要记住.3 还可以用netstat -an 命令,设法查出对方使用哪个端口进入并控制你的系统,对方的IP地址是多少,然后,设法屏