国内流行的内容管理系统(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.

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