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

WBOY
Freigeben: 2016-07-15 13:26:59
Original
702 Leute haben es durchsucht

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

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

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

图片类型就是“.”后面的字符(比如:一个文件名称为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>
<li class="">
<span></span><span class="tag-name"><strong><font color="#006699">function</font></strong></span><span> type()  </span>
</li>
<li class="alt"><span>{  </span></li>
<li class=""><span>return substr(strrchr($HTTP_POST_FILES['file']['name'],'.'),1);  </span></li>
<li class="alt"><span>}  </span></li>
<li class="">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>
</li>
</ol>
Nach dem Login kopieren

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

<ol class="dp-xml">
<li class="alt"><span><span>{  </span></span></li>
<li class=""><span>strtolower:把字符串的字母全部转换为小写字母.  </span></li>
<li class="alt"><span>in_array: 函数在数组中搜索给定的值。  </span></li>
<li class=""><span>implode:函数把数组元素组合为一个字符串  </span></li>
<li class="alt"><span>random:随机生成的数  </span></li>
<li class=""><span>$_FILES['userfile']['name']:上传文件名称  </span></li>
<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>
</li>
<li class=""><span>} </span></li>
</ol>
Nach dem Login kopieren

这边会出现很多问题,第一先写一个能上传类型的数组。第二判断文件合法性。第三给文件重名。*(这边判断文件大小就不写了)先定义允许上传文件的类型数组:$type=array("jpg","gif","bmp","jpeg","png");第二用一个IF。。else。。写一个判断文件合法性的控制流语句。
<ol class="dp-xml">
<li class="alt"><span><span>if(!in_arry(strtolower(type()),$type))//如果不存在能上传的类型  </span></span></li>
<li class=""><span>{  </span></li>
<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>
</li>
<li class="">
<span>echo "您只能上传以下类型文件: ",$text,"</span><strong><font color="#006699"><span class="tag"><span class="tag-name">br</span><span class="tag">></span></span></font></strong><span>";  </span>
</li>
<li class="alt"><span>} </span></li>
</ol>
Nach dem Login kopieren

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

<ol class="dp-xml">
<li class="alt"><span><span>else  </span></span></li>
<li class=""><span>{  </span></li>
<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>
</li>
<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>
</li>
<li class="alt"><span>$filename[0]=$time;//取文件名t替换  </span></li>
<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>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">uploadfile</font></span><span>=$uploaddir.$name;//上传后的文件名地址  </span>
</li>
<li class=""><span>} </span></li>
</ol>
Nach dem Login kopieren

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

<ol class="dp-xml">
<li class="alt"><span><span>{  </span></span></li>
<li class=""><span>move_uploaded_file:执行上传文件  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span>if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))  </span></li>
<li class="alt"><span>{  </span></li>
<li class="">
<span>echo "</span><strong><font color="#006699"><span class="tag"><span class="tag-name">center</span><span class="tag">></span></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 class="tag-name">br</span><span class="tag">></span><span class="tag"><span class="tag-name">center</span><span class="tag">></span><span class="tag"><span class="tag-name">img</span></span></span></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>
</li>
<li class="alt">
<span>echo"</span><strong><font color="#006699"><span class="tag"><span class="tag-name">br</span><span class="tag">></span><span class="tag"><span class="tag-name">center</span><span class="tag">></span><span class="tag"><span class="tag-name">a</span></span></span></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>
</li>
<li class=""><span>}  </span></li>
<li class="alt"><span>else  </span></li>
<li class=""><span>{  </span></li>
<li class="alt"><span>echo"传输失败!";  </span></li>
<li class=""><span>} </span></li>
</ol>
Nach dem Login kopieren

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


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446557.htmlTechArticle学习PHP时,你可能会遇到PHP上传图片问题,这里将介绍PHP上传图片问题的解决方法,在这里拿出来和大家分享一下。今天我们就开始一起学...
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!