PHP上传图片三个步骤详细分析_PHP教程

php中文网
发布: 2016-07-15 13:26:59
原创
936人浏览过

Cutout老照片上色
Cutout老照片上色

Cutout.Pro推出的黑白图片上色

Cutout老照片上色 20
查看详情 Cutout老照片上色

学习php时,你可能会遇到php上传图片问题,这里将介绍php上传图片问题的解决方法,在这里拿出来和大家分享一下。今天我们就开始一起学习php上传图片。上传图片原理:首先判断文件类型是否为图片格式,若是则上传文件,然后重命名文件(一般都是避免上传文件重名,现在基本上都是以为时间来命名),接着把文件上传到指定目录,成功上传后输出上传图片的预览。

1.首先我们开始判断文件类型是否为图片类型用到的函数

<OL class=dp-xml><LI class=alt><SPAN><SPAN>{  </SPAN></SPAN><LI class=""><SPAN>strrchr:查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。  </SPAN><LI class=alt><SPAN>substr: 取部份字符串。  </SPAN><LI class=""><SPAN>$HTTP_POST_FILES['file']['name']:获取当前上传的文件全称。  </SPAN><LI class=alt><SPAN>} </SPAN></LI></OL>
登录后复制

图片类型就是“.”后面的字符(比如:一个文件名称为XXX.JPG 那么它的类型就是“.”后面的JPG)。 我们可以用PHP中的函数来截取上传者文件名字的。我们来写个获取文件类型的函数

<OL class=dp-xml><LI class=alt><SPAN><SPAN class=tag><STRONG><FONT color=#006699><?</FONT></STRONG></SPAN><SPAN> </SPAN></SPAN><LI class=""><SPAN></SPAN><SPAN class=tag-name><STRONG><FONT color=#006699>function</FONT></STRONG></SPAN><SPAN> type()  </SPAN></SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>return substr(strrchr($HTTP_POST_FILES['file']['name'],'.'),1);  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN></SPAN><SPAN class=tag><STRONG><FONT color=#006699>?></FONT></STRONG></SPAN><SPAN> </SPAN></SPAN></LI></OL>
登录后复制

2.若是则上传文件,然后重命名文件用到的函数

<OL class=dp-xml><LI class=alt><SPAN><SPAN>{  </SPAN></SPAN><LI class=""><SPAN>strtolower:把字符串的字母全部转换为小写字母.  </SPAN><LI class=alt><SPAN>in_array: 函数在数组中搜索给定的值。  </SPAN><LI class=""><SPAN>implode:函数把数组元素组合为一个字符串  </SPAN><LI class=alt><SPAN>random:随机生成的数  </SPAN><LI class=""><SPAN>$_FILES['userfile']['name']:上传文件名称  </SPAN><LI class=alt><SPAN>$uploaddir:自己定义的变量。比如在同一个文件夹里面,你想把上传的文件放到这个文件夹的FILE文件夹下,你可以这样定义$</SPAN><SPAN class=attribute><FONT color=#ff0000>uploaddir</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"./file/"</FONT></SPAN><SPAN>;注意写法  </SPAN></SPAN><LI class=""><SPAN>} </SPAN></LI></OL>
登录后复制

这边会出现很多问题,第一先写一个能上传类型的数组。第二判断文件合法性。第三给文件重名。*(这边判断文件大小就不写了)先定义允许上传文件的类型数组:$type=array("jpg","gif","bmp","jpeg","png");第二用一个IF。。else。。写一个判断文件合法性的控制流语句。

立即学习PHP免费学习笔记(深入)”;

<OL class=dp-xml><LI class=alt><SPAN><SPAN>if(!in_arry(strtolower(type()),$type))//如果不存在能上传的类型  </SPAN></SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>text</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>implode</FONT></SPAN><SPAN>('.',$type);  </SPAN></SPAN><LI class=""><SPAN>echo "您只能上传以下类型文件: ",$text,"</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>br</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>";  </SPAN></SPAN><LI class=alt><SPAN>} </SPAN></LI></OL>
登录后复制

下面就是给他们重新命名了,

<OL class=dp-xml><LI class=alt><SPAN><SPAN>else  </SPAN></SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>filename</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>explode</FONT></SPAN><SPAN>(".",$_FILES['userfile']['name']);//把上传的文件名以“.”好为准做一个数组。  </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>time</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>date</FONT></SPAN><SPAN>("m-d-H-i-s");//去当前上传的时间  </SPAN></SPAN><LI class=alt><SPAN>$filename[0]=$time;//取文件名t替换  </SPAN><LI class=""><SPAN></SPAN><SPAN class=attribute><FONT color=#ff0000>name</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>implode</FONT></SPAN><SPAN>(".",$filename); //上传后的文件名  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>uploadfile</FONT></SPAN><SPAN>=$uploaddir.$name;//上传后的文件名地址  </SPAN></SPAN><LI class=""><SPAN>} </SPAN></LI></OL>
登录后复制

3.最后把文件上传到指定目录,成功上传后输出上传图片的预览用到的函数

<OL class=dp-xml><LI class=alt><SPAN><SPAN>{  </SPAN></SPAN><LI class=""><SPAN>move_uploaded_file:执行上传文件  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))  </SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>echo "</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>center</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>您的文件已经上传完毕 上传图片预览: </SPAN><STRONG><FONT color=#006699><SPAN class=tag></</SPAN><SPAN class=tag-name>center</SPAN><SPAN class=tag>></SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>br</SPAN><SPAN class=tag>></SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>center</SPAN><SPAN class=tag>></SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>img</SPAN></FONT></STRONG><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>src</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>'$uploadfile'</FONT></SPAN><STRONG><FONT color=#006699><SPAN class=tag>></SPAN><SPAN class=tag></</SPAN><SPAN class=tag-name>center</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>";  </SPAN></SPAN><LI class=alt><SPAN>echo"</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>br</SPAN><SPAN class=tag>></SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>center</SPAN><SPAN class=tag>></SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>a</SPAN></FONT></STRONG><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>href</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>'javascrīpt:history.go(-1)'</FONT></SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>继续上传</SPAN><STRONG><FONT color=#006699><SPAN class=tag></</SPAN><SPAN class=tag-name>a</SPAN><SPAN class=tag>></SPAN><SPAN class=tag></</SPAN><SPAN class=tag-name>center</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>";  </SPAN></SPAN><LI class=""><SPAN>}  </SPAN><LI class=alt><SPAN>else  </SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>echo"传输失败!";  </SPAN><LI class=""><SPAN>} </SPAN></LI></OL>
登录后复制

这样就OK 一个简单的上传图片的程序写完。假如你还想完善你的功能你可以自己添加!


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446557.htmlTechArticle学习PHP时,你可能会遇到PHP上传图片问题,这里将介绍PHP上传图片问题的解决方法,在这里拿出来和大家分享一下。今天我们就开始一起学...
相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号