Exemplo n.º 1
0
function atm_size($value, $datatype, $mode = 0)
{
    //使用没有经过addslashes的值,以k为单位
    if (empty($value)) {
        return 0;
    }
    $size = 0;
    if (in_array($datatype, array('image', 'flash', 'media', 'file'))) {
        $temps = explode('#', $value);
        if ($url = tag2atm($temps[0])) {
            $size = islocal($url) ? filesize(local_file($url)) : rm_filesize($url);
        }
    } elseif (in_array($datatype, array('images', 'flashs', 'medias', 'files'))) {
        if ($temps = @unserialize($value)) {
            foreach ($temps as $v) {
                if ($url = tag2atm($v['remote'])) {
                    $size += isset($v['size']) ? $v['size'] : (islocal($url) ? filesize(local_file($url)) : rm_filesize($url));
                    if ($mode) {
                        break;
                    }
                }
            }
        }
    }
    unset($temps, $url);
    return intval($size / 1024);
}
Exemplo n.º 2
0
function down_url($url)
{
    if (islocal($url)) {
        file_down(local_file($url));
    } else {
        header("location:{$url}");
    }
    mexit();
}
Exemplo n.º 3
0
 function closure($clear = 0, $aid = 0, $table = 'archives')
 {
     global $db, $tblprefix, $curuser, $m_cookie;
     $ckey = $curuser->info['msid'] . '_upload';
     $ids = implode(',', $this->ufids);
     empty($m_cookie[$ckey]) || ($ids = $m_cookie[$ckey] . ($ids ? ",{$ids}" : ''));
     if ($clear) {
         //表ID对应数组
         $tids = array('archives' => 1, 'farchives' => 2, 'members' => 3, 'marchives' => 4, 'comments' => 16, 'replys' => 17, 'offers' => 18, 'mcomments' => 32, 'mreplys' => 33);
         $tid = $table && isset($tids[$table]) ? $tids[$table] : 0;
         //防止别人修改cookie注入MySQL
         if (preg_match('/^\\d+(?:,\\d+)*$/', $ids)) {
             if ($aid) {
                 $tid && $db->query("UPDATE {$tblprefix}userfiles SET aid={$aid},tid={$tid} WHERE aid=0 AND ufid IN ({$ids})", 'UNBUFFERED');
             } elseif ($clear == 1) {
                 $query = $db->query("SELECT url FROM {$tblprefix}userfiles WHERE mid={$curuser->info['mid']} AND ufid IN ({$ids})");
                 while ($item = $db->fetch_array($query)) {
                     @unlink(local_file($item['url']));
                 }
                 $db->query("DELETE FROM {$tblprefix}userfiles WHERE ufid IN ({$ids})", 'UNBUFFERED');
             }
         }
         msetcookie($ckey, '', -31536000);
     } else {
         msetcookie($ckey, $ids, 31536000);
     }
 }
Exemplo n.º 4
0
     }
 } else {
     $query = $db->query("SELECT * FROM {$tblprefix}userfiles WHERE ufid " . multi_str($selectid) . " ORDER BY ufid");
 }
 while ($item = $db->fetch_array($query)) {
     $items[$item['ufid']] = $item;
 }
 $actuser = new cls_userinfo();
 foreach ($items as $item) {
     $actuser->activeuser($item['mid']);
     if ($item['thumbed']) {
         $actuser->updateuptotal(ceil(@filesize(local_file($item['url']) . '.s.jpg') / 1024), 'reduce');
         @unlink(local_file($item['url']) . '.s.jpg');
     }
     $actuser->updateuptotal(ceil($item['size'] / 1024), 'reduce', '1');
     @unlink(local_file($item['url']));
     $actuser->init();
 }
 $db->query("DELETE FROM {$tblprefix}userfiles WHERE ufid " . multi_str(array_keys($items)), 'UNBUFFERED');
 unset($actuser);
 if (!empty($select_all)) {
     $npage++;
     if ($npage <= $pages) {
         $fromid = min(array_keys($items));
         $transtr = '';
         $transtr .= "&select_all=1";
         $transtr .= "&pages={$pages}";
         $transtr .= "&npage={$npage}";
         $transtr .= "&buserfilesedit=1";
         $transtr .= "&fromid={$fromid}";
         amessage('operating', "?entry=userfiles&action=userfilesedit&page={$page}{$filterstr}{$transtr}", $pages, $npage, "<a href=\"?entry=userfiles&action=userfilesedit&page={$page}{$filterstr}\">", '</a>');
Exemplo n.º 5
0
 function arc_delete($isuser = 0)
 {
     global $db, $tblprefix, $enablestatic, $cotypes;
     if (empty($this->aid)) {
         return false;
     }
     $this->basic_data();
     if ($isuser && $this->archive['checked']) {
         return false;
     }
     //删除相应的txt存储文本
     $this->detail_data();
     foreach ($this->namepres as $k) {
         txtunlink($k);
     }
     $wherestr = "WHERE aid='" . $this->aid . "'";
     foreach (array('comments', 'favorites', 'subscribes', 'answers', 'arecents', 'purchases', 'offers', 'replys') as $var) {
         //????????????????
         $db->query("DELETE FROM {$tblprefix}{$var} {$wherestr}", 'UNBUFFERED');
     }
     $db->query("DELETE FROM {$tblprefix}albums WHERE aid='" . $this->aid . "' OR pid='" . $this->aid . "'", 'UNBUFFERED');
     //合辑关系全部删除
     //删除相关已生成的静态文件
     $arcurl = arc_format($this->archive);
     for ($i = 1; $i <= $this->channel['addnum']; $i++) {
         m_unlink(m_parseurl($arcurl, array('addno' => $i)));
     }
     $db->query("DELETE FROM {$tblprefix}archives_" . $this->archive['chid'] . " {$wherestr}", 'UNBUFFERED');
     $db->query("DELETE FROM {$tblprefix}archives_sub {$wherestr}", 'UNBUFFERED');
     $db->query("DELETE FROM {$tblprefix}archives_rec {$wherestr}", 'UNBUFFERED');
     $db->query("DELETE FROM {$tblprefix}archives {$wherestr}", 'UNBUFFERED');
     //数量统计
     $this->auser->basedeal('archive', 0);
     $this->archive['checked'] && $this->auser->basedeal('check', 0);
     $uploadsize = 0;
     $query = $db->query("SELECT * FROM {$tblprefix}userfiles WHERE tid='1' AND aid='" . $this->aid . "'");
     while ($item = $db->fetch_array($query)) {
         $ufile = local_file($item['url']);
         @unlink($ufile);
         clear_dir($ufile . '_s', true);
         $uploadsize += ceil($item['size'] / 1024);
     }
     $this->auser->updateuptotal($uploadsize, 'reduce', 1);
     $db->query("DELETE FROM {$tblprefix}userfiles {$wherestr}", 'UNBUFFERED');
     $this->init();
     return true;
 }