国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

223 lines
6.6KB

  1. <?php
  2. /**
  3. * swfupload上传
  4. *
  5. * @version $Id: swfupload.php 1 16:22 2010年7月20日Z tianya $
  6. * @package DedeCMS.Administrator
  7. * @copyright Copyright (c) 2007 - 2018, DesDev, Inc.
  8. * @copyright Copyright (c) 2020, DedeBIZ.COM
  9. * @license https://www.dedebiz.com/license/v6
  10. * @link https://www.dedebiz.com
  11. */
  12. require_once(dirname(__FILE__).'/config.php');
  13. require_once(DEDEINC.'/image.func.php');
  14. /************************
  15. //上传
  16. function Upload(){ }
  17. *************************/
  18. if(empty($dopost))
  19. {
  20. ini_set('html_errors', '0');
  21. if ( empty($Filedata) || !is_uploaded_file($Filedata) )
  22. {
  23. echo 'ERROR: Upload Error! ';
  24. exit(0);
  25. }
  26. //把文件移动到临时目录
  27. $tmpdir = DEDEDATA.'/uploadtmp';
  28. if(!is_dir($tmpdir))
  29. {
  30. MkdirAll($tmpdir, $cfg_dir_purview);
  31. CloseFtp();
  32. if(!is_dir($tmpdir))
  33. {
  34. echo "ERROR: Create {$tmpdir} dir Error! ";
  35. exit(0);
  36. }
  37. }
  38. $FiledataNew = str_replace("\\", '/', $Filedata);
  39. $FiledataNew = $tmpdir.'/'.preg_replace("/(.*)[\/]/isU", "", $FiledataNew);
  40. move_uploaded_file($Filedata, $FiledataNew);
  41. $info = $ftype = $sname = '';
  42. $srcInfo = GetImageSize($FiledataNew, $info);
  43. //检测文件类型
  44. if (!is_array($srcInfo))
  45. {
  46. @unlink($Filedata);
  47. echo "ERROR: Image info Error! ";
  48. exit(0);
  49. }
  50. else
  51. {
  52. switch ($srcInfo[2])
  53. {
  54. case 1:
  55. $ftype = 'image/gif';
  56. $sname = '.gif';
  57. break;
  58. case 2:
  59. $ftype = 'image/jpeg';
  60. $sname = '.jpg';
  61. break;
  62. case 3:
  63. $ftype = 'image/png';
  64. $sname = '.png';
  65. break;
  66. case 6:
  67. $ftype = 'image/bmp';
  68. $sname = '.bmp';
  69. break;
  70. }
  71. }
  72. if($ftype=='')
  73. {
  74. @unlink($Filedata);
  75. echo "ERROR: Image type Error! ";
  76. exit(0);
  77. }
  78. //保存原图
  79. $filedir = $cfg_image_dir.'/'.MyDate($cfg_addon_savetype, time());
  80. if(!is_dir(DEDEROOT.$filedir))
  81. {
  82. MkdirAll($cfg_basedir.$filedir, $cfg_dir_purview);
  83. CloseFtp();
  84. }
  85. $filename = $cuserLogin->getUserID().'-'.dd2char(MyDate('ymdHis', time()));
  86. if( file_exists($cfg_basedir.$filedir.'/'.$filename.$sname) )
  87. {
  88. for($i=50; $i <= 5000; $i++)
  89. {
  90. if( !file_exists($cfg_basedir.$filedir.'/'.$filename.'-'.$i.$sname) )
  91. {
  92. $filename = $filename.'-'.$i;
  93. break;
  94. }
  95. }
  96. }
  97. $fileurl = $filedir.'/'.$filename.$sname;
  98. $rs = copy($FiledataNew, $cfg_basedir.$fileurl);
  99. unlink($FiledataNew);
  100. if(!$rs)
  101. {
  102. echo "ERROR: Copy Uploadfile Error! ";
  103. exit(0);
  104. }
  105. //WaterImg($cfg_basedir.$fileurl, 'up');
  106. $title = $filename.$sname;
  107. $inquery = "INSERT INTO `#@__uploads`(title,url,mediatype,width,height,playtime,filesize,uptime,mid)
  108. VALUES ('$title','$fileurl','$ftype','0','0','0','".filesize($cfg_basedir.$fileurl)."','".time()."','".$cuserLogin->getUserID()."'); ";
  109. if(!empty($arcid))
  110. {
  111. $inquery = "INSERT INTO `#@__uploads`(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid)
  112. VALUES ('$arcid','$title','$fileurl','$ftype','0','0','0','".filesize($cfg_basedir.$fileurl)."','".time()."','".$cuserLogin->getUserID()."'); ";
  113. }
  114. $dsql->ExecuteNoneQuery($inquery);
  115. $fid = $dsql->GetLastID();
  116. AddMyAddon($fid, $fileurl);
  117. //生成缩略图
  118. ob_start();
  119. ImageResizeNew($cfg_basedir.$fileurl, $cfg_ddimg_width, $cfg_ddimg_height, '', false);
  120. $imagevariable = ob_get_contents();
  121. ob_end_clean();
  122. //保存信息到 session
  123. if (!isset($_SESSION['file_info'])) $_SESSION['file_info'] = array();
  124. if (!isset($_SESSION['bigfile_info'])) $_SESSION['bigfile_info'] = array();
  125. if (!isset($_SESSION['fileid'])) $_SESSION['fileid'] = 1;
  126. else $_SESSION['fileid']++;
  127. $_SESSION['bigfile_info'][$_SESSION['fileid']] = $fileurl;
  128. $_SESSION['file_info'][$_SESSION['fileid']] = $imagevariable;
  129. echo "FILEID:".$_SESSION['fileid'];
  130. exit(0);
  131. }
  132. /************************
  133. //生成缩图
  134. function GetThumbnail(){ }
  135. *************************/
  136. else if($dopost=='thumbnail')
  137. {
  138. if( empty($id) )
  139. {
  140. header('HTTP/1.1 500 Internal Server Error');
  141. echo 'No ID';
  142. exit(0);
  143. }
  144. if (!is_array($_SESSION['file_info']) || !isset($_SESSION['file_info'][$id]))
  145. {
  146. header('HTTP/1.1 404 Not found');
  147. exit(0);
  148. }
  149. header('Content-type: image/jpeg');
  150. header('Content-Length: '.strlen($_SESSION['file_info'][$id]));
  151. echo $_SESSION['file_info'][$id];
  152. exit(0);
  153. }
  154. /************************
  155. //删除指定ID的图片
  156. *************************/
  157. else if($dopost=='del')
  158. {
  159. if(!isset($_SESSION['bigfile_info'][$id]))
  160. {
  161. echo '';
  162. exit();
  163. }
  164. $dsql->ExecuteNoneQuery("DELETE FROM `#@__uploads` WHERE url LIKE '{$_SESSION['bigfile_info'][$id]}'; ");
  165. @unlink($cfg_basedir.$_SESSION['bigfile_info'][$id]);
  166. $_SESSION['file_info'][$id] = '';
  167. $_SESSION['bigfile_info'][$id] = '';
  168. echo "<b>已删除!</b>";
  169. exit();
  170. }
  171. /************************
  172. //获取图片地址
  173. *************************/
  174. else if($dopost=='addtoedit')
  175. {
  176. if(!isset($_SESSION['bigfile_info'][$id]))
  177. {
  178. echo '';
  179. exit();
  180. }
  181. echo $_SESSION['bigfile_info'][$id];
  182. exit();
  183. }
  184. /************************
  185. //获取本地图片的缩略预览图
  186. function GetddImg(){ }
  187. *************************/
  188. else if($dopost=='ddimg')
  189. {
  190. //生成缩略图
  191. ob_start();
  192. if(!preg_match("/^(http[s]?:\/\/)?([^\/]+)/i", $img)) $img = $cfg_basedir.$img;
  193. ImageResizeNew($img, $cfg_ddimg_width, $cfg_ddimg_height, '', false);
  194. $imagevariable = ob_get_contents();
  195. ob_end_clean();
  196. header('Content-type: image/jpeg');
  197. header('Content-Length: '.strlen($imagevariable));
  198. echo $imagevariable;
  199. exit();
  200. }
  201. /************************
  202. //删除指定的图片(编辑图集时用)
  203. *************************/
  204. else if($dopost=='delold')
  205. {
  206. $imgfile = $cfg_basedir.$picfile;
  207. if(!file_exists($imgfile) && !is_dir($imgfile) && preg_match("#^".$cfg_medias_dir."#", $imgfile))
  208. {
  209. @unlink($imgfile);
  210. }
  211. $dsql->ExecuteNoneQuery("DELETE FROM `#@__uploads` WHERE url LIKE '{$picfile}'; ");
  212. echo "<b>已删除!</b>";
  213. exit();
  214. }