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

113 lines
3.8KB

  1. <?php
  2. /**
  3. * 软件发送
  4. *
  5. * @version $Id: select_soft_post.php 1 9:43 2010年7月8日Z tianya $
  6. * @package DedeCMS.Dialog
  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. if(!isset($cfg_basedir))
  13. {
  14. include_once(dirname(__FILE__).'/config.php');
  15. }
  16. if(empty($uploadfile)) $uploadfile = '';
  17. if(empty($uploadmbtype)) $uploadmbtype = '软件类型';
  18. if(empty($bkurl)) $bkurl = 'select_soft.php';
  19. $CKEditorFuncNum = (isset($CKEditorFuncNum))? $CKEditorFuncNum : 1;
  20. $newname = ( empty($newname) ? '' : preg_replace("#[\\ \"\*\?\t\r\n<>':\/|]#", "", $newname) );
  21. if(!is_uploaded_file($uploadfile))
  22. {
  23. ShowMsg("你没有选择上传的文件或选择的文件大小超出限制!", "-1");
  24. exit();
  25. }
  26. //软件类型所有支持的附件
  27. $cfg_softtype = $cfg_softtype;
  28. $cfg_softtype = str_replace('||', '|', $cfg_softtype);
  29. $uploadfile_name = trim(preg_replace("#[ \r\n\t\*\%\\\/\?><\|\":]{1,}#", '', $uploadfile_name));
  30. if(!preg_match("#\.(".$cfg_softtype.")#i", $uploadfile_name))
  31. {
  32. ShowMsg("你所上传的{$uploadmbtype}不在许可列表,请更改系统对扩展名限定的配置!","");
  33. exit();
  34. }
  35. $nowtme = time();
  36. if($activepath==$cfg_soft_dir)
  37. {
  38. $newdir = MyDate($cfg_addon_savetype, $nowtme);
  39. $activepath = $activepath.'/'.$newdir;
  40. if(!is_dir($cfg_basedir.$activepath))
  41. {
  42. MkdirAll($cfg_basedir.$activepath,$cfg_dir_purview);
  43. CloseFtp();
  44. }
  45. }
  46. //文件名(前为手工指定, 后者自动处理)
  47. if(!empty($newname))
  48. {
  49. $filename = $newname;
  50. if(!preg_match("#\.#", $filename)) $fs = explode('.', $uploadfile_name);
  51. else $fs = explode('.', $filename);
  52. if(preg_match("#".$cfg_not_allowall."#", $fs[count($fs)-1]))
  53. {
  54. ShowMsg("你指定的文件名被系统禁止!",'javascript:;');
  55. exit();
  56. }
  57. if(!preg_match("#\.#", $filename)) $filename = $filename.'.'.$fs[count($fs)-1];
  58. }else{
  59. $filename = $cuserLogin->getUserID().'-'.dd2char(MyDate('ymdHis',$nowtme));
  60. $fs = explode('.', $uploadfile_name);
  61. if(preg_match("#".$cfg_not_allowall."#", $fs[count($fs)-1]))
  62. {
  63. ShowMsg("你上传了某些可能存在不安全因素的文件,系统拒绝操作!",'javascript:;');
  64. exit();
  65. }
  66. $filename = $filename.'.'.$fs[count($fs)-1];
  67. }
  68. $fullfilename = $cfg_basedir.$activepath.'/'.$filename;
  69. $fullfileurl = $activepath.'/'.$filename;
  70. move_uploaded_file($uploadfile,$fullfilename) or die("上传文件到 $fullfilename 失败!");
  71. @unlink($uploadfile);
  72. if($cfg_remote_site=='Y' && $remoteuploads == 1)
  73. {
  74. //分析远程文件路径
  75. $remotefile = str_replace(DEDEROOT, '', $fullfilename);
  76. $localfile = '../..'.$remotefile;
  77. //创建远程文件夹
  78. $remotedir = preg_replace('/[^\/]*\.('.$cfg_softtype.')/', '', $remotefile);
  79. $ftp->rmkdir($remotedir);
  80. $ftp->upload($localfile, $remotefile);
  81. }
  82. if($uploadfile_type == 'application/x-shockwave-flash')
  83. {
  84. $mediatype=2;
  85. }
  86. else if(preg_match('#image#i', $uploadfile_type))
  87. {
  88. $mediatype=1;
  89. }
  90. else if(preg_match('#audio|media|video#i', $uploadfile_type))
  91. {
  92. $mediatype=3;
  93. }
  94. else
  95. {
  96. $mediatype=4;
  97. }
  98. $inquery = "INSERT INTO `#@__uploads`(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid)
  99. VALUES ('0','$filename','$fullfileurl','$mediatype','0','0','0','{$uploadfile_size}','{$nowtme}','".$cuserLogin->getUserID()."'); ";
  100. $dsql->ExecuteNoneQuery($inquery);
  101. $fid = $dsql->GetLastID();
  102. AddMyAddon($fid, $fullfileurl);
  103. ShowMsg("成功上传文件!",$bkurl."?comeback=".urlencode($filename)."&f=$f&CKEditorFuncNum=$CKEditorFuncNum&activepath=".urlencode($activepath)."&d=".time());
  104. exit();