五分钟PHP上传类实现_PHP教程

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

码上飞
码上飞

码上飞(CodeFlying) 是一款AI自动化开发平台,通过自然语言描述即可自动生成完整应用程序。

码上飞 138
查看详情 码上飞

php有很多值得学习的地方,这里我们主要介绍php上传类的解决方案,希望大家通过本文有大的收获。用户可以直接在web页面中输入php命令代码,因而不需要任何特殊的开发环境。在web页面中,所有php代码都被放置在“”中。此外,用户还可以选择使用诸如 等的形式。php引擎会自动识别并处理页面中所有位于php定界符之间的代码。

PHP脚本语言的语法结构与C语言和Perl语言的语法风格非常相似。用户在使用变量前不需要对变量进行声明。使用PHP创建数组的过程也非常简单。PHP还具有基本的面向对象组件功能,可以极大的方便用户有效组织和封装自己编写的代码,下面我们就详细的介绍PHP上传类的问题。
 
PHP上传类实现代码:
<OL class=dp-xml><LI class=alt><SPAN><SPAN class=tag><?</SPAN><SPAN class=tag-name>php</SPAN><SPAN> </SPAN></SPAN><LI class=""><SPAN>/**  </SPAN><LI class=alt><SPAN>*Fileuploadclass  </SPAN><LI class=""><SPAN>*@version1.0.0(ThuAug1801:32:39CST2005)  </SPAN><LI class=alt><SPAN>*@authorsanshi  </SPAN><LI class=""><SPAN>*/  </SPAN><LI class=alt><SPAN>classupLoad  </SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>/**  </SPAN><LI class=""><SPAN>*  </SPAN><LI class=alt><SPAN>*@authorsanshi  </SPAN><LI class=""><SPAN>*@version1.0.0ThuAug1801:00:18CST2005  </SPAN><LI class=alt><SPAN>*@paramstring$info文件内容  </SPAN><LI class=""><SPAN>*@paramstring$fileName生成的文件名  </SPAN><LI class=alt><SPAN>*@returnboolean建立成功返回true  </SPAN><LI class=""><SPAN>*@deprecated  </SPAN><LI class=alt><SPAN>*建立html文件  </SPAN><LI class=""><SPAN>*/  </SPAN><LI class=alt><SPAN>functioncreateHtml($info,$fileName)  </SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>/**  </SPAN><LI class=alt><SPAN>*  </SPAN><LI class=""><SPAN>*@authorsanshi  </SPAN><LI class=alt><SPAN>*@version1.0.0ThuAug1801:03:09CST2005  </SPAN><LI class=""><SPAN>*@returnvoid  </SPAN><LI class=alt><SPAN>*@deprecated  </SPAN><LI class=""><SPAN>*构造函数  </SPAN><LI class=alt><SPAN>*/  </SPAN><LI class=""><SPAN>functiondownLoad()  </SPAN><LI class=alt><SPAN>{}  </SPAN><LI class=""><SPAN>/**  </SPAN><LI class=alt><SPAN>*  </SPAN><LI class=""><SPAN>*@authorsanshi  </SPAN><LI class=alt><SPAN>*@version1.0.0ThuAug1801:03:55CST2005  </SPAN><LI class=""><SPAN>*@paramstring$fileField在表单中的字段名  </SPAN><LI class=alt><SPAN>*@paramstring$length限制的长度  </SPAN><LI class=""><SPAN>*@returnboolean成功返回true  </SPAN><LI class=alt><SPAN>*@deprecated  </SPAN><LI class=""><SPAN>*功能实现函数  </SPAN><LI class=alt><SPAN>*/  </SPAN><LI class=""><SPAN>functioninit($fileField,$</SPAN><SPAN class=attribute>length</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>''</SPAN><SPAN>)  </SPAN></SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>files</SPAN><SPAN>=$_FILES[$fileField];  </SPAN></SPAN><LI class=alt><SPAN>//用户名需要改动,根据自己的实际情况做改动  </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>userName</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>'sanshi'</SPAN><SPAN>;  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>fileName</SPAN><SPAN>=$files['name'];  </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>fileType</SPAN><SPAN>=$files['type'];  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>fileTemp</SPAN><SPAN>=$files['tmp_name'];  </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>fileSize</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>empty</SPAN><SPAN>($length)?($files['size']+10):$length;  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>fileError</SPAN><SPAN>=$files['error'];//这块也许php4中没有  </SPAN></SPAN><LI class=""><SPAN>//改为  </SPAN><LI class=alt><SPAN>//if($this-</SPAN><SPAN class=tag>></SPAN><SPAN>_isType($fileName)||$this-</SPAN><SPAN class=tag>></SPAN><SPAN>_isBig($length ))  </SPAN></SPAN><LI class=""><SPAN>if(!$this-</SPAN><SPAN class=tag>></SPAN><SPAN>_isType($fileName)||$this-</SPAN><SPAN class=tag>></SPAN><SPAN>_isBig($length )||$fileError!=0)  </SPAN></SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>//print_r($files);  </SPAN><LI class=alt><SPAN>returnfalse;  </SPAN><LI class=""><SPAN>}else{  </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>path</SPAN><SPAN>=$this-</SPAN><SPAN class=tag>></SPAN><SPAN>_createDir($userName);//取得路径  </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>createFileName</SPAN><SPAN>=$userName."_".time();//设置当前文件名  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>createFileType</SPAN><SPAN>=$this-</SPAN><SPAN class=tag>></SPAN><SPAN>getFileType($fileName);//设置文件类别  </SPAN></SPAN><LI class=""><SPAN>return@move_uploaded_file($fileTemp,$path.$createFileName.'.'.$createFileType)?true:false;  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>}  </SPAN><LI class=alt><SPAN> </SPAN><LI class=""><SPAN>/**  </SPAN><LI class=alt><SPAN>*  </SPAN><LI class=""><SPAN>*@authorsanshi  </SPAN><LI class=alt><SPAN>*@version1.0.0ThuAug1801:07:43CST2005  </SPAN><LI class=""><SPAN>*@paramint$length上传限制的大小  </SPAN><LI class=alt><SPAN>*@returnboolean超过返回true  </SPAN><LI class=""><SPAN>*@deprecated  </SPAN><LI class=alt><SPAN>*判断是否超过预定大小  </SPAN><LI class=""><SPAN>*/  </SPAN><LI class=alt><SPAN>function_isBig($length)  </SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>bigest</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>''</SPAN><SPAN>;  </SPAN></SPAN><LI class=""><SPAN>return$big</SPAN><SPAN class=tag>></SPAN><SPAN>$bigest?true:false;  </SPAN></SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>/**  </SPAN><LI class=alt><SPAN>*  </SPAN><LI class=""><SPAN>*@authorsanshi  </SPAN><LI class=alt><SPAN>*@version1.0.0ThuAug1801:08:55CST2005  </SPAN><LI class=""><SPAN>*@paramstring$fileName文件名  </SPAN><LI class=alt><SPAN>*@returnstring$fileType文件后缀  </SPAN><LI class=""><SPAN>*@deprecated  </SPAN><LI class=alt><SPAN>*取得文件后缀(只取得文件的最后一个后缀名)  </SPAN><LI class=""><SPAN>*/  </SPAN><LI class=alt><SPAN>functiongetFileType($fileName)  </SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>returnend(explode('.',$fileName));  </SPAN><LI class=""><SPAN>}  </SPAN><LI class=alt><SPAN>/**  </SPAN><LI class=""><SPAN>*  </SPAN><LI class=alt><SPAN>*@authorsanshi  </SPAN><LI class=""><SPAN>*@version1.0.0ThuAug1801:10:41CST2005  </SPAN><LI class=alt><SPAN>*@paramstring$fileName文件名  </SPAN><LI class=""><SPAN>*@paramboolean$method是否检查多个后缀默认false  </SPAN><LI class=alt><SPAN>*@paramint$postFix后缀个数默认为2  </SPAN><LI class=""><SPAN>*@returnboolean存在返回true  </SPAN><LI class=alt><SPAN>*@deprecated  </SPAN><LI class=""><SPAN>*检查文件的后缀是否在类别数组中,类别数组自己设置  </SPAN><LI class=alt><SPAN>*如果$method设置为true则检查文件有几个后缀  </SPAN><LI class=""><SPAN>*/  </SPAN><LI class=alt><SPAN>function_isType($fileName,$</SPAN><SPAN class=attribute>method</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>'false'</SPAN><SPAN>,$</SPAN><SPAN class=attribute>postFix</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>2</SPAN><SPAN>)  </SPAN></SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>//设置类别数组  </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>type</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>array</SPAN><SPAN>('jpeg',  </SPAN></SPAN><LI class=alt><SPAN>'gif',  </SPAN><LI class=""><SPAN>'bmp',  </SPAN><LI class=alt><SPAN>'exe');  </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>fileName</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>strtolower</SPAN><SPAN>($fileName);  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>fileTypeArray</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>explode</SPAN><SPAN>('.',$fileName);  </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>fileType</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>end</SPAN><SPAN>($fileTypeArray);  </SPAN></SPAN><LI class=alt><SPAN>//判断是否有一个文件有多个后缀  </SPAN><LI class=""><SPAN>if($method)  </SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>if(count($fileTypeArray)</SPAN><SPAN class=tag>></SPAN><SPAN>(is_int($postFix)?$postFix:2))  </SPAN></SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>returnfalse;  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>}  </SPAN><LI class=alt><SPAN>returnin_array($fileType,$type);  </SPAN><LI class=""><SPAN>}  </SPAN><LI class=alt><SPAN> </SPAN><LI class=""><SPAN>/**  </SPAN><LI class=alt><SPAN>*  </SPAN><LI class=""><SPAN>*@authorsanshi  </SPAN><LI class=alt><SPAN>*@version1.0.0ThuAug1801:17:19CST2005  </SPAN><LI class=""><SPAN>*@paramstring$userName  </SPAN><LI class=alt><SPAN>*@returnstring$path  </SPAN><LI class=""><SPAN>*@deprecated  </SPAN><LI class=alt><SPAN>*建立目录目录格式年/月/日/用户名/  </SPAN><LI class=""><SPAN>*权限为755  </SPAN><LI class=alt><SPAN>*/  </SPAN><LI class=""><SPAN>function_createDir($userName)  </SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>root</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>''</SPAN><SPAN>;  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>pathSign</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>DIRECTORY_SEPARATOR</SPAN><SPAN>;  </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>y</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>date</SPAN><SPAN>('Y').$pathSign;  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>m</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>date</SPAN><SPAN>('m').$pathSign;  </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>d</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>date</SPAN><SPAN>('d').$pathSign;  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>path</SPAN><SPAN>=$root.$y.$m.$d.$userName;  </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>dirArray</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>explode</SPAN><SPAN>($pathSign,$path);  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>tempDir</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>''</SPAN><SPAN>;  </SPAN></SPAN><LI class=""><SPAN>foreach($dirArrayas$dir)  </SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>tempDir.</SPAN><SPAN>=$dir.$pathSign;  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>isFile</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>file_exists</SPAN><SPAN>($tempDir);  </SPAN></SPAN><LI class=""><SPAN>clearstatcache();  </SPAN><LI class=alt><SPAN>if(!$isFile&&!is_dir($tempDir))  </SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>@mkdir($tempDir,0755);  </SPAN><LI class=""><SPAN>}  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>return$path.$pathSign;  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>/**  </SPAN><LI class=alt><SPAN>*  </SPAN><LI class=""><SPAN>*@authorsanshi  </SPAN><LI class=alt><SPAN>*@version1.0.0ThuAug1801:19:32CST2005  </SPAN><LI class=""><SPAN>*@param string$dirName目录名  </SPAN><LI class=alt><SPAN>*@return boolean可以操作返回true  </SPAN><LI class=""><SPAN>*@deprecated  </SPAN><LI class=alt><SPAN>*判断操作是否在上传目录  </SPAN><LI class=""><SPAN>*/  </SPAN><LI class=alt><SPAN>function_isDel($dirName)  </SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>//注意upLoadDir,一定要与真正使用目录相对应  </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>upLoadDir</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>''</SPAN><SPAN>;  </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>upLoadDir</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>preg_replace</SPAN><SPAN>('/\//','/',$upLoadDir);  </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>format</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>"/^{$upLoadDir}/"</SPAN><SPAN>;  </SPAN></SPAN><LI class=alt><SPAN>returnpreg_match($format,$dirName);  </SPAN><LI class=""><SPAN>}  </SPAN><LI class=alt><SPAN>/**  </SPAN><LI class=""><SPAN>*  </SPAN><LI class=alt><SPAN>*@authorsanshi  </SPAN><LI class=""><SPAN>*@version1.0.0ThuAug1801:25:58CST2005  </SPAN><LI class=alt><SPAN>*@paramstring$fileName文件名  </SPAN><LI class=""><SPAN>*@returnboolean删除文件成功返回true  </SPAN><LI class=alt><SPAN>*@deprecated  </SPAN><LI class=""><SPAN>*删除文件  </SPAN><LI class=alt><SPAN>*/  </SPAN><LI class=""><SPAN>functiondelFile($fileName)  </SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>cur_dir</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>dirname</SPAN><SPAN>(trim($fileName));  </SPAN></SPAN><LI class=alt><SPAN>if($this-</SPAN><SPAN class=tag>></SPAN><SPAN>_isDel($cur_dir))  </SPAN></SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>return@unlink($fileName)?true:false;  </SPAN><LI class=""><SPAN>}else{  </SPAN><LI class=alt><SPAN>returnfalse;  </SPAN><LI class=""><SPAN>}  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>/**  </SPAN><LI class=alt><SPAN>*  </SPAN><LI class=""><SPAN>*@authorsanshi  </SPAN><LI class=alt><SPAN>*@version1.0.0ThuAug1801:27:43CST2005  </SPAN><LI class=""><SPAN>*@paramstring$dieName目录名  </SPAN><LI class=alt><SPAN>*@returnboolean删除成功返回true  </SPAN><LI class=""><SPAN>*@deprecated  </SPAN><LI class=alt><SPAN>*删除目录目录下如果有文件不能删除  </SPAN><LI class=""><SPAN>*/  </SPAN><LI class=alt><SPAN>functiondelDir($dirName)  </SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>if($this-</SPAN><SPAN class=tag>></SPAN><SPAN>_isDel($dirName)&&is_dir($dirName))  </SPAN></SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>return@rmdir($dirName)?true:false;  </SPAN><LI class=""><SPAN>}else{  </SPAN><LI class=alt><SPAN>returnfalse;  </SPAN><LI class=""><SPAN>}  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN> </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN></SPAN><SPAN class=tag>?></SPAN><SPAN> </SPAN></SPAN><LI class=alt><SPAN></SPAN><SPAN class=tag><?</SPAN><SPAN class=tag-name>php</SPAN><SPAN> </SPAN></SPAN><LI class=""><SPAN>//使用  </SPAN><LI class=alt><SPAN>/*  </SPAN><LI class=""><SPAN>include'upLoad.class.php';  </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>up</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>newupLoad</SPAN><SPAN>();  </SPAN></SPAN><LI class=""><SPAN>if($up-</SPAN><SPAN class=tag>></SPAN><SPAN>init("file"))  </SPAN></SPAN><LI class=alt><SPAN>{  </SPAN><LI class=""><SPAN>echo'success';  </SPAN><LI class=alt><SPAN>}else{  </SPAN><LI class=""><SPAN>echo'failure';  </SPAN><LI class=alt><SPAN>}  </SPAN><LI class=""><SPAN>*/  </SPAN><LI class=alt><SPAN></SPAN><SPAN class=tag>?></SPAN><SPAN> </SPAN></SPAN></LI></OL>
登录后复制

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446561.htmlTechArticlePHP有很多值得学习的地方,这里我们主要介绍PHP上传类的解决方案,希望大家通过本文有大的收获。用户可以直接在WEB页面中输入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号