Browse Source

文件上传限制

tags/6.2.7
tianya 1 year ago
parent
commit
00877e607c
9 changed files with 54 additions and 60 deletions
  1. +1
    -0
      .gitignore
  2. +5
    -0
      src/static/web/css/style.css
  3. +1
    -0
      src/system/common.func.php
  4. +13
    -50
      src/system/customfields.func.php
  5. +9
    -7
      src/system/memberlogin.class.php
  6. +8
    -0
      src/user/api.php
  7. +3
    -3
      src/user/index.php
  8. +12
    -0
      src/user/templets/index.htm
  9. +2
    -0
      src/user/templets/widget_litpic.htm

+ 1
- 0
.gitignore View File

@@ -53,3 +53,4 @@ src/a/baidunews.xml
src/data/backupfile*
src/data/updatefile*
src/data/checksql_*
src/static/media/*/

+ 5
- 0
src/static/web/css/style.css View File

@@ -477,4 +477,9 @@ input[type=file] {
.feedbacks .feedback-action {
float:none
}
}
.userspace .info{
font-size: 14px;
font-weight: normal;
color: #545b62;
}

+ 1
- 0
src/system/common.func.php View File

@@ -675,6 +675,7 @@ function GetMimeTypeOrExtension($str, $t = 0) {
'midi' => 'audio/midi',
'mjs' => 'text/javascript',
'mp3' => 'audio/mpeg',
'mp4' => 'video/mp4',
'mpeg' => 'video/mpeg',
'mpkg' => 'application/vnd.apple.installer+xml',
'odp' => 'application/vnd.oasis.opendocument.presentation',


+ 13
- 50
src/system/customfields.func.php View File

@@ -105,11 +105,15 @@ function GetFormItem($ctag, $admintype = 'admin')
$innertext = "<input type='text' name='$fieldname' value='$nowtime' id='$fieldname' class='form-control admin-input-lg'>";
} else if ($fieldType == 'img' || $fieldType == 'imgfile') {
$fname = defined('DEDEADMIN')? 'form1' : 'addcontent';
$innertext = "<input type='text' name='$fieldname' id='$fieldname' class='form-control admin-input-lg'> <input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectImage('$fname.$fieldname','big')\">";
$sstr = $fieldType == 'imgfile'? '' : "<input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectImage('$fname.$fieldname','big')\">";
$pstr = $fieldType == 'imgfile'? '请填写图片地址' : '请选择图片上传或填写图片地址';
$innertext = "<input type='text' name='$fieldname' id='$fieldname' class='form-control admin-input-lg' placeholder='$pstr'> $sstr";
} else if ($fieldType == 'media') {
$innertext = "<input type='text' name='$fieldname' id='$fieldname' class='form-control admin-input-lg' placeholder='请输入多媒体文件地址'>";
$fname = defined('DEDEADMIN')? 'form1' : 'addcontent';
$innertext = "<input type='text' name='$fieldname' id='$fieldname' class='form-control admin-input-lg' placeholder='请选择多媒体上传或填写多媒体地址'> <input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectMedia('$fname.$fieldname')\">";
} else if ($fieldType == 'addon') {
$innertext = "<input type='text' name='$fieldname' id='$fieldname' class='form-control admin-input-lg' placeholder='请输入附件地址'>";
$fname = defined('DEDEADMIN')? 'form1' : 'addcontent';
$innertext = "<input type='text' name='$fieldname' id='$fieldname' class='form-control admin-input-lg' placeholder='请选择附件上传或填写附件地址'> <input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectSoft('$fname.$fieldname')\">";
} else if ($fieldType == 'int' || $fieldType == 'float') {
$dfvalue = ($ctag->GetAtt('default') != '' ? $ctag->GetAtt('default') : '0');
$innertext = "<input type='text' name='$fieldname' id='$fieldname' class='form-control admin-input-xs' value='$dfvalue'>";
@@ -219,50 +223,7 @@ function GetFieldValue($dvalue, $dtype, $aid = 0, $job = 'add', $addvar = '', $a
CloseFtp();
return $filename;
} else if ($dtype == 'img' || $dtype == 'imgfile') {
if (preg_match("#[\\|/]static[\\|/]userup#", $dvalue)) return addslashes($dvalue);
if ($admintype == 'diy') {
$iurl = MemberUploads($fieldname, '', 0, 'image', '', -1, -1, false);
return $iurl;
}
$iurl = stripslashes($dvalue);
if (trim($iurl) == '') {
return '';
}
$iurl = trim(str_replace($GLOBALS['cfg_basehost'], "", $iurl));
$imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}";
if (preg_match("/^(http|https):\/\//i", $iurl) && $GLOBALS['cfg_isUrlOpen']) {
//远程图片
$reimgs = '';
if ($GLOBALS['cfg_isUrlOpen']) {
$reimgs = GetRemoteImage($iurl, $adminid);
if (is_array($reimgs)) {
if ($dtype == 'imgfile') {
$imgurl = $reimgs[1];
} else {
$imgurl = "{dede:img text='' width='".$reimgs[1]."' height='".$reimgs[2]."'} ".$reimgs[0]." {/dede:img}";
}
}
} else {
if ($dtype == 'imgfile') {
$imgurl = $iurl;
} else {
$imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}";
}
}
} else if ($iurl != '') {
//站内图片
$imgfile = $cfg_basedir.$iurl;
if (is_file($imgfile)) {
$info = '';
$imginfos = GetImageSize($imgfile, $info);
if ($dtype == "imgfile") {
$imgurl = $iurl;
} else {
$imgurl = "{dede:img text='' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}";
}
}
}
return addslashes($imgurl);
return addslashes($dvalue);
} else if ($dtype == 'addon' && $admintype == 'diy') {
if ($admintype == 'diy') {
return addslashes($dvalue);
@@ -397,6 +358,7 @@ function GetFormItemValue($ctag, $fvalue, $admintype = 'admin', $fieldname = '')
$nowtime = GetDateTimeMk($fvalue);
$innertext = "<input type='text' name='$fieldname' value='$nowtime' id='$fieldname' class='form-control admin-input-lg'>";
} else if ($ftype == "img") {
$tmpValue = $fvalue;
$ndtp = new DedeTagParse();
$ndtp->LoadSource($fvalue);
if (!is_array($ndtp->CTags)) {
@@ -408,18 +370,19 @@ function GetFormItemValue($ctag, $fvalue, $admintype = 'admin', $fieldname = '')
$fvalue = trim($ntag->GetInnerText());
}
}
$fvalue = empty($fvalue)? $tmpValue : $fvalue;
$fname = defined('DEDEADMIN')? 'form1' : 'addcontent';
$innertext = "<input type='text' name='$fieldname' value='$fvalue' id='$fieldname' class='form-control admin-input-lg'> <input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectImage('$fname.$fieldname','big')\">";
} else if ($ftype == "imgfile") {
$fname = defined('DEDEADMIN')? 'form1' : 'addcontent';
$innertext = "<input type='text' name='$fieldname' value='$fvalue' id='$fieldname' class='form-control admin-input-lg'> <input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectImage('$fname.$fieldname','big')\">";
$innertext = "<input type='text' name='$fieldname' value='$fvalue' id='$fieldname' class='form-control admin-input-lg'>";
} else if ($ftype == "media") {
$fname = defined('DEDEADMIN')? 'form1' : 'addcontent';
$selectStr = defined('DEDEADMIN')? "<input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectMedia('$fname.$fieldname')\">" : '';
$selectStr = "<input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectMedia('$fname.$fieldname')\">";
$innertext = "<input type='text' name='$fieldname' value='$fvalue' id='$fieldname' class='form-control admin-input-lg'> $selectStr";
} else if ($ftype == "addon") {
$fname = defined('DEDEADMIN')? 'form1' : 'addcontent';
$selectStr = defined('DEDEADMIN')? "<input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectSoft('$fname.$fieldname')\">" : "";
$selectStr = "<input type='button' name='".$fieldname."_bt' class='btn btn-success btn-sm' value='选择' onClick=\"SelectSoft('$fname.$fieldname')\">";
$innertext = "<input type='text' name='$fieldname' id='$fieldname' value='$fvalue' class='form-control admin-input-lg'> $selectStr";
} else if ($ftype == "int" || $ftype == "float") {
$innertext = "<input type='text' name='$fieldname' id='$fieldname' class='form-control admin-input-xs' value='$fvalue'>";


+ 9
- 7
src/system/memberlogin.class.php View File

@@ -236,23 +236,25 @@ class MemberLogin
{
$uid = $this->M_ID;
$row = $this->dsql->GetOne("SELECT sum(filesize) AS fs FROM `#@__uploads` WHERE mid='$uid';");
return $row['fs'];
return intval($row['fs']);
}
/**
* 检查会员空间信息
* 检查会员空间是否已满
*
* @return void
* @return bool
*/
function CheckUserSpace()
function CheckUserSpaceIsFull()
{
global $cfg_mb_max;
$uid = $this->M_ID;
if ($cfg_mb_max == 0) {
return false;
}
$hasuse = $this->GetUserSpace();
$maxSize = $cfg_mb_max * 1024 * 1024;
if ($hasuse >= $maxSize) {
ShowMsg('您的空间已满,不允许上传新文件', '-1');
exit();
return true;
}
return false;
}
/**
* 更新会员信息统计表


+ 8
- 0
src/user/api.php View File

@@ -67,6 +67,14 @@ if ($action === 'is_need_check_code') {
));
exit;
}
if ($cfg_ml->CheckUserSpaceIsFull()) {
echo json_encode(array(
"code" => -1,
"msg" => "您的空间已满,不允许上传新文件",
"data" => null,
));
exit;
}
$target_dir = "uploads/";//上传目录
$type = isset($type)? $type : '';
//获取允许的扩展


+ 3
- 3
src/user/index.php View File

@@ -20,12 +20,13 @@ if ($uid == '') {
} else {
$minfos = $dsql->GetOne("SELECT * FROM `#@__member_tj` WHERE mid='".$cfg_ml->M_ID."';");
$minfos['totaluse'] = $cfg_ml->GetUserSpace();
$minfos['totaluse'] = number_format($minfos['totaluse'] / 1024 / 1024, 2);
if ($cfg_mb_max > 0) {
$ddsize = ceil(($minfos['totaluse'] / $cfg_mb_max) * 100);
$ddsize = ceil($minfos['totaluse'] / ($cfg_mb_max * 1024 * 1024) * 100);
} else {
$ddsize = 0;
}
$ddsize = $ddsize > 100? 100 : $ddsize;
$minfos['totaluse'] = number_format($minfos['totaluse'] / 1024 / 1024, 2);
require_once(DEDEINC.'/channelunit.func.php');
//显示最新文档
$archives = array();
@@ -42,4 +43,3 @@ if ($uid == '') {
$dpl->display();
}
}
?>

+ 12
- 0
src/user/templets/index.htm View File

@@ -69,6 +69,18 @@
</div>
</div>
</div>
<?php if($cfg_mb_max > 0){ ?>
<div class="py-3">
<div class="pannel-main-container shadow-sm rounded">
<div class="media-body item-article">
<h4 class="mb-3 userspace">用户空间<span class="info">(<?php echo $minfos['totaluse'];?>MB/<?php echo $cfg_mb_max;?>MB)</span></h4>
<div class="progress">
<div class="progress-bar progress-bar-striped bg-success" role="progressbar" style="width: <?php echo $ddsize;?>%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"><?php echo $ddsize;?>%</div>
</div>
</div>
</div>
</div>
<?php } ?>
<div class="pt-3">
<div class="pannel-main-container shadow-sm rounded">
<div class="media-body item-article">


+ 2
- 0
src/user/templets/widget_litpic.htm View File

@@ -17,6 +17,8 @@
if (result.code === 0) {
$("#imgLitpic").attr('src', result.data);
$("#litpic").val(result.data);
} else {
ShowMsg(result.msg);
}
},
error: function (xhr, status, error) {


Loading…
Cancel
Save