程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 五分鐘PHP上傳類實現

五分鐘PHP上傳類實現

編輯:關於PHP編程

PHP有很多值得學習的地方,這裡我們主要介紹PHP上傳類的解決方案,希望大家通過本文有大的收獲。用戶可以直接在WEB頁面中輸入PHP命令代碼,因而不需要任何特殊的開發環境。在WEB頁面中,所有PHP代碼都被放置在“”中。此外,用戶還可以選擇使用諸如 等的形式。PHP引擎會自動識別並處理頁面中所有位於PHP定界符之間的代碼。

PHP腳本語言的語法結構與C語言和Perl語言的語法風格非常相似。用戶在使用變量前不需要對變量進行聲明。使用PHP創建數組的過程也非常簡單。PHP還具有基本的面向對象組件功能,可以極大的方便用戶有效組織和封裝自己編寫的代碼,下面我們就詳細的介紹PHP上傳類的問題。
 
PHP上傳類實現代碼:

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved