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

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