91精品综合久久久久久五月天_国产精品一区电影_中文字幕欧美日韩一区二区_亚洲一区二区三区精品动漫

PHP file upload handling class

Last night of PHP's file upload side of things, got more than 3:00, and finally come up with the file upload handling class. Wrote a half last night, then the rest of the afternoon finish. Tested for a moment did not find any problems. Including the bulk upload file, add watermark to images, generate image thumbnails and other features, accessories directory can use the custom format the date parameters. First posted the code to share it:
PHP Code

   1. <? Php
   2. //-------------------------------------
   3. / / Document Description: file upload handling class
   4. / / File of: Jesse Lee
   5. / / On the home page: http://www.lisijie.com.cn
   6. / / Last Updated :2008-5-14
   7. //-------------------------------------
   8.
   9. Class upload (
  10.
  11. Var $ dir; / / accessories store physical directory
  12. Var $ time; / / custom file upload time
  13. Var $ allow_types; / / allow upload attachment type
  14. Var $ field; / / upload control name
  15. Var $ maxsize; / / maximum allowed file size in KB
  16.
  17. Var $ thumb_width; / / Thumbnail width
  18. Var $ thumb_height; / / the thumbnail height
  19.
  20. Var $ watermark_file; / / watermark image address
  21. Var $ watermark_pos; / / position of watermark
  22. Var $ watermark_trans; / / watermark transparency
  23.
  24.
  25. / / Constructor
  26. / / $ Types: allowed upload file types, $ maxsize: Allow size, $ field: From the control name, $ time: time for a custom upload
  27. Function upload ($ types = 'jpg | png', $ maxsize = 1024, $ field = 'attach', $ time ='') (
  28. $ This-> allow_types = explode ('|',$ types);
  29. $ This-> maxsize = $ maxsize * 1024;
  30. $ This-> field = $ field;
  31. $ This-> time = $ time? $ Time: time ();
  32.)
  33.
  34. / / Set and create a file stored in the directory specific
  35. / / $ Basedir: base directory must be the physical path
  36. / / $ Filedir: custom subdirectories, available parameters (y), (m), (d)
  37. Function set_dir ($ basedir, $ filedir ='') (
  38. $ Dir = $ basedir;
  39.! Is_dir ($ dir) & & @ mkdir ($ dir, 0777);
  40. If (! Empty ($ filedir)) (
  41. $ Filedir = str_replace (array ('(y }','{ m }','{ d)'), array (date ('Y', $ this-> time), date ('m', $ this-> time), date ('d', $ this-> time)), strtolower ($ filedir));
  42. $ Dirs = explode ('/',$ filedir);
  43. Foreach ($ dirs as $ d) (
  44.! Empty ($ d) & & $ dir .= $ d. '/';
  45.! Is_dir ($ dir) & & @ mkdir ($ dir, 0777);
  46.)
  47.)
  48. $ This-> dir = $ dir;
  49.)
  50.
  51. / / Image thumbnail settings, if you do not generate thumbnails is not set
  52. / / $ Width: thumbnail width, $ height: height Thumbnail
  53. Function set_thumb ($ width = 0, $ height = 0) (
  54. $ This-> thumb_width = $ width;
  55. $ This-> thumb_height = $ height;
  56.)
  57.
  58. / / Image watermark setting, if you do not add the watermark is not set to generate
  59. / / $ File: watermark image, $ pos: position of watermark, $ trans: watermark transparency
  60. Function set_watermark ($ file, $ pos = 6, $ trans = 80) (
  61. $ This-> watermark_file = $ file;
  62. $ This-> watermark_pos = $ pos;
  63. $ This-> watermark_trans = $ trans;
  64.)
  65.
  66. /*---------------------------------------------- ------------------
  67. The implementation of file upload, processed returns a success or failure of the file upload information array
  68. Including: name for the file name, upload is successfully uploaded to the server when the file name, upload failure is a local file name
  69. Dir for the server storing the physical path of the attachment, upload failure the value does not exist
  70. Size as the attachment size, upload the value does not exist fail
  71. Flag for the state identification, 1 for success, -1, said file type not allowed, said the file size exceeds -2
  72. ------------------------------------------------ -----------------*/
  73. Function execute () (
  74. $ Files = array (); / / successfully uploaded the file information
  75. $ Field = $ this-> field;
  76. $ Keys = array_keys ($ _FILES [$ field] ['name']);
  77. Foreach ($ keys as $ key) (
  78. If (! $ _FILES [$ Field] ['name'] [$ key]) continue;
  79.
  80. $ Fileext = $ this-> fileext ($ _FILES [$ field] ['name'] [$ key]); / / Get the file extension
  81. $ Filename = date ('Ymdhis', $ this-> time). Mt_rand (10,99 ).'.'.$ fileext; / / generate file name
  82. $ Filedir = $ this-> dir; / / Annex actual store directory
  83. $ Filesize = $ _FILES [$ field] ['size'] [$ key]; / / File Size
  84.
  85. / / File type not allowed
  86. If (! In_array ($ fileext, $ this-> allow_types)) (
  87. $ Files [$ key] ['name'] = $ _FILES [$ field] ['name'] [$ key];
  88. $ Files [$ key] ['flag'] = -1;
  89. Continue;
  90.)
  91.
  92. / / The file size exceeds
  93. If ($ filesize> $ this-> maxsize) (
  94. $ Files [$ key] ['name'] = $ _FILES [$ field] ['name'] [$ key];
  95. $ Files [$ key] ['name'] = $ filesize;
  96. $ Files [$ key] ['flag'] = -2;
  97. Continue;
  98.)
  99.
 100. $ Files [$ key] ['name'] = $ filename;
 101. $ Files [$ key] ['dir'] = $ filedir;
 102. $ Files [$ key] ['size'] = $ filesize;
 103.
 104. / / Save the uploaded file and delete temporary files
 105. If (is_uploaded_file ($ _FILES [$ field] ['tmp_name'] [$ key])) (
 106. Move_uploaded_file ($ _FILES [$ field] ['tmp_name'] [$ key], $ filedir. $ Filename);
 107. @ Unlink ($ _FILES [$ field] ['tmp_name'] [$ key]);
 108. $ Files [$ key] ['flag'] = 1;
 109.
 110. / / Add a watermark on pictures and generate thumbnails
 111. If (in_array ($ fileext, array ('jpg', 'png'))) (
 112. If ($ this-> thumb_width) (
 113. If ($ this-> create_thumb ($ filedir. $ Filename, $ filedir. 'Thumb_'. $ Filename)) (
 114. $ Files [$ key] ['thumb'] = 'thumb_'. $ Filename; / / thumbnail file name
 115.)
 116.)
 117. $ This-> create_watermark ($ filedir. $ Filename);
 118.)
 119.)
 120.)
 121.
 122. Return $ files;
 123.)
 124.
 125. / / Create thumbnails, generate the same extension Thumbnail
 126. / / $ Src_file: source image path, $ thumb_file: Thumbnail Path
 127. Function create_thumb ($ src_file, $ thumb_file) (
 128. $ T_width = $ this-> thumb_width;
 129. $ T_height = $ this-> thumb_height;
 130.
 131. If (! File_exists ($ src_file)) return false;
 132.
 133. $ Src_info = getImageSize ($ src_file);
 134.
 135. / / If the source image is less than or equal to the copy of the source image as a thumbnail thumbnail
 136. If ($ src_info [0] <= $ t_width & & $ src_info [1] <= $ t_height) (
 137. If (! Copy ($ src_file, $ thumb_file)) (
 138. Return false;
 139.)
 140. Return true;
 141.)
 142.
 143. / / Thumbnail size pro-rata basis
 144. If ($ src_info [0] - $ t_width> $ src_info [1] - $ t_height) (
 145. $ T_height = ($ t_width / $ src_info [0]) * $ src_info [1];
 146.) Else (
 147. $ T_width = ($ t_height / $ src_info [1]) * $ src_info [0];
 148.)
 149.
 150. / / Get file extension
 151. $ Fileext = $ this-> fileext ($ src_file);
 152.
 153. Switch ($ fileext) (
 154. Case 'jpg':
 155. $ Src_img = ImageCreateFromJPEG ($ src_file); break;
 156. Case 'png':
 157. $ Src_img = ImageCreateFromPNG ($ src_file); break;
 158. Case 'gif':
 159. $ Src_img = ImageCreateFromGIF ($ src_file); break;
 160.)
 161.
 162. / / Create a true color of the thumbnail image
 163. $ Thumb_img = @ ImageCreateTrueColor ($ t_width, $ t_height);
 164.
 165. / / ImageCopyResampled copy of the image smoothness function better, giving priority to
 166. If (function_exists ('imagecopyresampled')) (
 167. @ ImageCopyResampled ($ thumb_img, $ src_img, 0,0,0,0, $ t_width, $ t_height, $ src_info [0], $ src_info [1]);
 168.) Else (
 169. @ ImageCopyResized ($ thumb_img, $ src_img, 0,0,0,0, $ t_width, $ t_height, $ src_info [0], $ src_info [1]);
 170.)
 171.
 172. / / Generate thumbnail
 173. Switch ($ fileext) (
 174. Case 'jpg':
 175. ImageJPEG ($ thumb_img, $ thumb_file); break;
 176. Case 'gif':
 177. ImageGIF ($ thumb_img, $ thumb_file); break;
 178. Case 'png':
 179. ImagePNG ($ thumb_img, $ thumb_file); break;
 180.)
 181.
 182. / / Destroy the temporary image
 183. @ ImageDestroy ($ src_img);
 184. @ ImageDestroy ($ thumb_img);
 185.
 186. Return true;
 187.
 188.)
 189.
 190. / / Add a watermark to images
 191. / / $ File: the file you want to add watermark
 192. Function create_watermark ($ file) (
 193.
 194. / / File does not exist is returned
 195. If (! File_exists ($ this-> watermark_file) | |! File_exists ($ file)) return;
 196. If (! Function_exists ('getImageSize')) return;
 197.
 198. / / Check GD supported file types
 199. $ Gd_allow_types = array ();
 200. If (function_exists ('ImageCreateFromGIF')) $ gd_allow_types ['image / gif'] = 'ImageCreateFromGIF';
 201. If (function_exists ('ImageCreateFromPNG')) $ gd_allow_types ['image / png'] = 'ImageCreateFromPNG';
 202. If (function_exists ('ImageCreateFromJPEG')) $ gd_allow_types ['image / jpeg'] = 'ImageCreateFromJPEG';
 203.
 204. / / Get file information
 205. $ Fileinfo = getImageSize ($ file);
 206. $ Wminfo = getImageSize ($ this-> watermark_file);
 207.
 208. If ($ fileinfo [0] <$ wminfo [0] | | $ fileinfo [1] <$ wminfo [1]) return;
 209.
 210. If (array_key_exists ($ fileinfo ['mime'], $ gd_allow_types)) (
 211. If (array_key_exists ($ wminfo ['mime'], $ gd_allow_types)) (
 212.
 213. / / Create the image from the file
 214. $ Temp = $ gd_allow_types [$ fileinfo ['mime']]($ file);
 215. $ Temp_wm = $ gd_allow_types [$ wminfo ['mime']]($ this-> watermark_file);
 216.
 217. / / Position of watermark
 218. Switch ($ this-> watermark_pos) (
 219. Case 1: / / at the top of the left hand side
 220. $ Dst_x = 0; $ dst_y = 0; break;
 221. Case 2: / / top center
 222. $ Dst_x = ($ fileinfo [0] - $ wminfo [0]) / 2; $ dst_y = 0; break;
 223. Case 3: / / top right hand side
 224. $ Dst_x = $ fileinfo [0]; $ dst_y = 0; break;
 225. Case 4: / / bottom left hand side
 226. $ Dst_x = 0; $ dst_y = $ fileinfo [1]; break;
 227. Case 5: / / bottom of the center
 228. $ Dst_x = ($ fileinfo [0] - $ wminfo [0]) / 2; $ dst_y = $ fileinfo [1]; break;
 229. Case 6: / / bottom right hand side
 230. $ Dst_x = $ fileinfo [0] - $ wminfo [0]; $ dst_y = $ fileinfo [1] - $ wminfo [1]; break;
 231. Default: / / Random
 232. $ Dst_x = mt_rand (0, $ fileinfo [0] - $ wminfo [0]); $ dst_y = mt_rand (0, $ fileinfo [1] - $ wminfo [1]);
 233.)
 234.
 235. If (function_exists ('ImageAlphaBlending')) ImageAlphaBlending ($ temp_wm, True); / / set the blending mode of the image
 236. If (function_exists ('ImageSaveAlpha')) ImageSaveAlpha ($ temp_wm, True); / / save the full alpha channel information
 237.
 238. / / Add a watermark to images
 239. If (function_exists ('imageCopyMerge')) (
 240. ImageCopyMerge ($ temp, $ temp_wm, $ dst_x, $ dst_y, 0,0, $ wminfo [0], $ wminfo [1], $ this-> watermark_trans);
 241.) Else (
 242. ImageCopyMerge ($ temp, $ temp_wm, $ dst_x, $ dst_y, 0,0, $ wminfo [0], $ wminfo [1]);
 243.)
 244.
 245. / / Save the image
 246. Switch ($ fileinfo ['mime']) (
 247. Case 'image / jpeg':
 248. @ ImageJPEG ($ temp, $ file);
 249. Break;
 250. Case 'image / png':
 251. @ ImagePNG ($ temp, $ file);
 252. Break;
 253. Case 'image / gif':
 254. @ ImageGIF ($ temp, $ file);
 255. Break;
 256.)
 257. / / Destroy the image zero
 258. @ ImageDestroy ($ temp);
 259. @ ImageDestroy ($ temp_wm);
 260.)
 261.)
 262.)
 263.
 264. / / Get the file extension
 265. Function fileext ($ filename) (
 266. Return strtolower (substr (strrchr ($ filename ,'.'), 1,10));
 267.)
 268.)
 269.?>

Use examples:
PHP Code

   1. <? Php
   2. If ($ _GET ['action'] == 'save') (
   3.
   4. $ Up = new upload ();
   5. $ Up-> set_dir (dirname (__FILE__). '/ Upload /','{ y) / (m)');
   6. $ Up-> set_thumb (100,80);
   7. $ Up-> set_watermark (dirname (__FILE__). '/ Jblog / images / watermark.png', 6,90);
   8. $ Fs = $ up-> execute ();
   9.
  10. Var_dump ($ fs);
  11.)
  12.?>
  13. <html>
  14. <head> <title> Test </ title> </ head>
  15. <body Style="margin:0;padding:0">
  16. <form Name="upload" method="post" action="?action=save" enctype="multipart/form-data" style="margin:0">
  17. <input Type="file" name="attach[]" />
  18. <input Type="file" name="attach[]" />
  19. <input Type="submit" name="submit" value="上傳" />
  20. </ Form>
  21. </ Body>
  22. </ Html>

Declined comment

91精品综合久久久久久五月天_国产精品一区电影_中文字幕欧美日韩一区二区_亚洲一区二区三区精品动漫
久久久久久伊人| 免费在线黄网站| 亚洲人精品午夜射精日韩| 日本人成精品视频在线| 国产日韩亚洲欧美| 国产精品乱码一区二区三区| 日本人成精品视频在线| 国产精品一二三视频| www.99久久热国产日韩欧美.com| 一本色道久久88亚洲精品综合| 蜜桃视频成人在线观看| 日韩视频免费大全中文字幕| 日本成人精品在线| 久久久久久噜噜噜久久久精品| 尤物av无码色av无码| 国产欧美一区二区三区四区 | 国产一区在线免费观看| 色妞色视频一区二区三区四区| 无码人妻精品一区二区三区66| 不卡一区二区三区视频| 亚洲综合国产精品| 91久久久在线| 五月天在线免费视频| 久久亚洲精品无码va白人极品| 亚洲国产精品影视| 国产经典久久久| 日韩国产高清一区| 久久av综合网| 欧美一级电影久久| 国产精品三级网站| 国产在线精品自拍| 欧美日本中文字幕| 99久热在线精品视频| 视频一区免费观看| 久久久久久久久久久久久国产精品| 欧洲久久久久久| 国产精品入口夜色视频大尺度| 国模精品视频一区二区| 色综合色综合网色综合| 99久久激情视频| 日韩av在线综合| 久久久久久久久久久久av| 日韩久久在线| 久久成人国产精品| 国产精品一色哟哟| 日本在线视频不卡| 国产精品涩涩涩视频网站| 国产自产在线视频一区| 一本色道久久综合亚洲二区三区| 久久人人爽人人爽人人片av高清| 任我爽在线视频精品一| 国产精品入口日韩视频大尺度 | 久久精品第九区免费观看| 日韩精品一区二区三区久久| 国产精品入口日韩视频大尺度 | 国产精品成人在线| 99在线视频免费观看| 日本高清久久一区二区三区| 国产精品久久久久久久久久新婚 | 国产成人成网站在线播放青青| 欧美亚洲另类在线| 欧美精品国产精品日韩精品| 久久精品日产第一区二区三区| 国产一区二区色| 无码少妇一区二区三区芒果| 国产精品区一区二区三在线播放| 99在线视频免费观看| 欧美一级黑人aaaaaaa做受| 在线视频精品一区| 国产成人久久久| 97国产精品视频| 激情成人开心网| 中国人体摄影一区二区三区| 久久久久久亚洲| 成人短视频在线观看免费| 欧美日本韩国在线| 亚洲资源在线看| 日韩中文在线不卡| 成人av在线不卡| 欧美日韩亚洲在线| 欧美一级免费在线观看| 久久久久久com| www.xxxx欧美| 久久天天狠狠| 国产女大学生av| 欧美精品一区二区三区三州| 大地资源第二页在线观看高清版| 国产精品视频一区二区三区四 | 日本成人中文字幕在线| 中文字幕人妻熟女人妻洋洋| 国产精品无码一本二本三本色| 国产精品99久久久久久白浆小说| 国产日韩欧美自拍| 欧美亚洲视频在线观看| 日韩在线一级片| 亚洲最大成人网色| 欧美精品videos| 国产精品视频色| 久久久久亚洲av无码专区喷水| 99免费视频观看| 国产精品一级久久久| 国产综合在线视频| 欧美一区二区中文字幕| 日本久久久久久久| 天天干天天色天天爽| 亚洲综合在线做性| 中文字幕黄色大片| 精品免费久久久久久久| 国产精品视频白浆免费视频| 久久精品二区| 国产厕所精品在线观看| 91精品国产综合久久久久久蜜臀 | 超碰日本道色综合久久综合| 国产精品涩涩涩视频网站| 久久久久久综合网天天| 国产第一区电影| 国产成人在线播放| 国产成人综合精品| 国产超级av在线| 久久久久亚洲av无码专区喷水| 91精品久久久久久久| 99视频日韩| 91观看网站| 久久青青草原一区二区| 久久这里只有精品18| 久草青青在线观看| 日韩一区二区福利| 久久精品成人欧美大片| 久久精品中文字幕一区| 国产精品手机播放| 久久五月情影视| 久久成人精品视频| 久久久久久999| 亚洲日本欧美在线| 亚洲mm色国产网站| 日韩中字在线观看| 日韩精品一区二区免费| 精品欧美国产| 国产美女久久精品香蕉69| 成人动漫在线观看视频| 91精品国产电影| 久久久久久亚洲精品| 国内精品二区| 国产乱子伦精品| 久久露脸国产精品| 国产精品视频26uuu| 宅男一区二区三区| 亚洲.欧美.日本.国产综合在线| 日本精品一区二区三区不卡无字幕| 青青在线免费视频| 蜜桃传媒一区二区| 97精品视频在线观看| 国产成人精品视| 国产精品久久久久久久久久直播| 欧美激情aaaa| 日韩午夜视频在线观看| 国产主播在线看| 国产精品av在线播放 | 日本一区视频在线观看| 欧美少妇一级片| 国产免费黄色小视频| 久久久无码中文字幕久...| 久久精品视频在线观看| 欧美精品日韩www.p站| 亚洲人久久久| 欧美高清性xxxxhd| 成人乱人伦精品视频在线观看| 久久久久久亚洲精品中文字幕| 国产精品久久久久久久久久免费| 亚洲综合在线播放| 欧美亚洲一级片| 国产精品一区二区三区在线| 久久精品日韩| 精品免费二区三区三区高中清不卡| 亚洲精品影院| 激情图片qvod| 国产成人精品电影| 欧美日韩成人黄色| 秋霞毛片久久久久久久久| 成人毛片100部免费看| 日韩专区在线观看| 一区二区三区四区不卡| 欧美中日韩免费视频| 99久久激情视频| 国产精品久久久亚洲| 日本一区二区黄色| www日韩视频| 国产精品普通话| 无码日韩人妻精品久久蜜桃| 麻豆久久久av免费| 日韩在线视频导航| 亚洲乱码一区二区三区三上悠亚| 精品一区久久久久久| 久久国产精品一区二区三区| 伊人久久大香线蕉av一区| 精品视频免费观看| 精品激情国产视频| 日韩欧美视频网站| 91成人综合网| 亚洲综合在线做性|