国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

183 строки
6.2KB

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