<ruby id="ldvnh"><ins id="ldvnh"><menuitem id="ldvnh"></menuitem></ins></ruby>

<address id="ldvnh"></address>

    <form id="ldvnh"></form>

      <em id="ldvnh"></em>

        <noframes id="ldvnh">
          <address id="ldvnh"></address>

          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

          亚洲一区爱区精品无码