学习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>立即学习“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 一个简单的上传图片的程序写完。假如你还想完善你的功能你可以自己添加!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号