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

199 lines
6.6KB

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