五分钟PHP上传类实现

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

#T#PHP脚本语言的语法结构与C语言和Perl语言的语法风格非常相似。用户在使用变量前不需要对变量进行声明。使用PHP创建数组的过程也非常简单。PHP还具有基本的面向对象组件功能,可以极大的方便用户有效组织和封装自己编写的代码,下面我们就详细的介绍PHP上传类的问题。
 
PHP上传类实现代码:

 
 
  1. /**  
  2. *Fileuploadclass  
  3. *@version1.0.0(ThuAug1801:32:39CST2005)  
  4. *@authorsanshi  
  5. */  
  6. classupLoad  
  7. {  
  8. /**  
  9. *  
  10. *@authorsanshi  
  11. *@version1.0.0ThuAug1801:00:18CST2005  
  12. *@paramstring$info文件内容  
  13. *@paramstring$fileName生成的文件名  
  14. *@returnboolean建立成功返回true  
  15. *@deprecated  
  16. *建立html文件  
  17. */  
  18. functioncreateHtml($info,$fileName)  
  19. {  
  20. }  
  21. /**  
  22. *  
  23. *@authorsanshi  
  24. *@version1.0.0ThuAug1801:03:09CST2005  
  25. *@returnvoid  
  26. *@deprecated  
  27. *构造函数  
  28. */  
  29. functiondownLoad()  
  30. {}  
  31. /**  
  32. *  
  33. *@authorsanshi  
  34. *@version1.0.0ThuAug1801:03:55CST2005  
  35. *@paramstring$fileField在表单中的字段名  
  36. *@paramstring$length限制的长度  
  37. *@returnboolean成功返回true  
  38. *@deprecated  
  39. *功能实现函数  
  40. */  
  41. functioninit($fileField,$length='')  
  42. {  
  43. $files=$_FILES[$fileField];  
  44. //用户名需要改动,根据自己的实际情况做改动  
  45. $userName='sanshi';  
  46. $fileName=$files['name'];  
  47. $fileType=$files['type'];  
  48. $fileTemp=$files['tmp_name'];  
  49. $fileSize=empty($length)?($files['size']+10):$length;  
  50. $fileError=$files['error'];//这块也许php4中没有  
  51. //改为  
  52. //if($this->_isType($fileName)||$this->_isBig($length ))  
  53. if(!$this->_isType($fileName)||$this->_isBig($length )||$fileError!=0)  
  54. {  
  55. //print_r($files);  
  56. returnfalse;  
  57. }else{  
  58. $path=$this->_createDir($userName);//取得路径  
  59. $createFileName=$userName."_".time();//设置当前文件名  
  60. $createFileType=$this->getFileType($fileName);//设置文件类别  
  61. return@move_uploaded_file($fileTemp,$path.$createFileName.'.'.$createFileType)?true:false;  
  62. }  
  63. }  
  64.  
  65. /**  
  66. *  
  67. *@authorsanshi  
  68. *@version1.0.0ThuAug1801:07:43CST2005  
  69. *@paramint$length上传限制的大小  
  70. *@returnboolean超过返回true  
  71. *@deprecated  
  72. *判断是否超过预定大小  
  73. */  
  74. function_isBig($length)  
  75. {  
  76. $bigest='';  
  77. return$big>$bigest?true:false;  
  78. }  
  79. /**  
  80. *  
  81. *@authorsanshi  
  82. *@version1.0.0ThuAug1801:08:55CST2005  
  83. *@paramstring$fileName文件名  
  84. *@returnstring$fileType文件后缀  
  85. *@deprecated  
  86. *取得文件后缀(只取得文件的***一个后缀名)  
  87. */  
  88. functiongetFileType($fileName)  
  89. {  
  90. returnend(explode('.',$fileName));  
  91. }  
  92. /**  
  93. *  
  94. *@authorsanshi  
  95. *@version1.0.0ThuAug1801:10:41CST2005  
  96. *@paramstring$fileName文件名  
  97. *@paramboolean$method是否检查多个后缀默认false  
  98. *@paramint$postFix后缀个数默认为2  
  99. *@returnboolean存在返回true  
  100. *@deprecated  
  101. *检查文件的后缀是否在类别数组中,类别数组自己设置  
  102. *如果$method设置为true则检查文件有几个后缀  
  103. */  
  104. function_isType($fileName,$method='false',$postFix=2)  
  105. {  
  106. //设置类别数组  
  107. $type=array('jpeg',  
  108. 'gif',  
  109. 'bmp',  
  110. 'exe');  
  111. $fileName=strtolower($fileName);  
  112. $fileTypeArray=explode('.',$fileName);  
  113. $fileType=end($fileTypeArray);  
  114. //判断是否有一个文件有多个后缀  
  115. if($method)  
  116. {  
  117. if(count($fileTypeArray)>(is_int($postFix)?$postFix:2))  
  118. {  
  119. returnfalse;  
  120. }  
  121. }  
  122. returnin_array($fileType,$type);  
  123. }  
  124.  
  125. /**  
  126. *  
  127. *@authorsanshi  
  128. *@version1.0.0ThuAug1801:17:19CST2005  
  129. *@paramstring$userName  
  130. *@returnstring$path  
  131. *@deprecated  
  132. *建立目录目录格式年/月/日/用户名/  
  133. *权限为755  
  134. */  
  135. function_createDir($userName)  
  136. {  
  137. $root='';  
  138. $pathSign=DIRECTORY_SEPARATOR;  
  139. $y=date('Y').$pathSign;  
  140. $m=date('m').$pathSign;  
  141. $d=date('d').$pathSign;  
  142. $path=$root.$y.$m.$d.$userName;  
  143. $dirArray=explode($pathSign,$path);  
  144. $tempDir='';  
  145. foreach($dirArrayas$dir)  
  146. {  
  147. $tempDir.=$dir.$pathSign;  
  148. $isFile=file_exists($tempDir);  
  149. clearstatcache();  
  150. if(!$isFile&&!is_dir($tempDir))  
  151. {  
  152. @mkdir($tempDir,0755);  
  153. }  
  154. }  
  155. return$path.$pathSign;  
  156. }  
  157. /**  
  158. *  
  159. *@authorsanshi  
  160. *@version1.0.0ThuAug1801:19:32CST2005  
  161. *@param string$dirName目录名  
  162. *@return boolean可以操作返回true  
  163. *@deprecated  
  164. *判断操作是否在上传目录  
  165. */  
  166. function_isDel($dirName)  
  167. {  
  168. //注意upLoadDir,一定要与真正使用目录相对应  
  169. $upLoadDir='';  
  170. $upLoadDir=preg_replace('/\\//','\/',$upLoadDir);  
  171. $format="/^{$upLoadDir}/";  
  172. returnpreg_match($format,$dirName);  
  173. }  
  174. /**  
  175. *  
  176. *@authorsanshi  
  177. *@version1.0.0ThuAug1801:25:58CST2005  
  178. *@paramstring$fileName文件名  
  179. *@returnboolean删除文件成功返回true  
  180. *@deprecated  
  181. *删除文件  
  182. */  
  183. functiondelFile($fileName)  
  184. {  
  185. $cur_dir=dirname(trim($fileName));  
  186. if($this->_isDel($cur_dir))  
  187. {  
  188. return@unlink($fileName)?true:false;  
  189. }else{  
  190. returnfalse;  
  191. }  
  192. }  
  193. /**  
  194. *  
  195. *@authorsanshi  
  196. *@version1.0.0ThuAug1801:27:43CST2005  
  197. *@paramstring$dieName目录名  
  198. *@returnboolean删除成功返回true  
  199. *@deprecated  
  200. *删除目录目录下如果有文件不能删除  
  201. */  
  202. functiondelDir($dirName)  
  203. {  
  204. if($this->_isDel($dirName)&&is_dir($dirName))  
  205. {  
  206. return@rmdir($dirName)?true:false;  
  207. }else{  
  208. returnfalse;  
  209. }  
  210. }  
  211.  
  212. }  
  213. ?> 
  214. //使用  
  215. /*  
  216. include'upLoad.class.php';  
  217. $up=newupLoad();  
  218. if($up->init("file"))  
  219. {  
  220. echo'success';  
  221. }else{  
  222. echo'failure';  
  223. }  
  224. */  
  225. ?> 

网站栏目:五分钟PHP上传类实现
标题来源:http://www.shufengxianlan.com/qtweb/news41/430341.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联