destoon中的图片上传和删除

来源:互联网 发布:java socket编程心跳 编辑:程序博客网 时间:2024/05/16 16:05
/**
     * 上传图片的函数
     */
    function upload_pic($file) {
        global $DT, $DT_TIME;
        if($file['error'] > 0 || $file['size'] == 0) return false;
        $uploaddir = 'file/upload/comment/'.timetodate($DT_TIME, $DT['uploaddir']).'/';
        require_once DT_ROOT.'/include/file.func.php';
        is_dir(DT_ROOT.'/'.$uploaddir) or dir_create(DT_ROOT.'/'.$uploaddir);
        require_once DT_ROOT.'/include/upload.class.php';
        
        $do = new upload(array($file), $uploaddir);
        if($do->is_image() && $do->save()) {
            require_once DT_ROOT.'/include/image.class.php';
            $saveto = $do->saveto;
            $image_o = new image(DT_ROOT.'/'.$saveto);
            if($image_o->g_w>$DT['max_image'] || $image_o->g_h>$DT['max_image'])
            {
                $new_width=$image_o->g_w;
                if($new_width>$DT['max_image'])
                {
                    $new_width=$DT['max_image'];
                }
                $new_height=intval($image_o->g_h*($new_width/$image_o->g_w));
                
                $image_o->thumb($new_width,$new_height,$DT['thumb_album']);
            }
            if($DT['water_type'] == 2) {
                $image = new image(DT_ROOT.'/'.$saveto);
                $image->waterimage();
            } else if($DT['water_type'] == 1) {
                $image = new image(DT_ROOT.'/'.$saveto);
                $image->watertext();
            }
            $saveto = linkurl($saveto);
            if($DT['ftp_remote'] && $DT['remote_url']) {
                require_once DT_ROOT.'/include/ftp.class.php';
                $ftp = new dftp($DT['ftp_host'], $DT['ftp_user'], $DT['ftp_pass'], $DT['ftp_port'], $DT['ftp_path'], $DT['ftp_pasv'], $DT['ftp_ssl']);
                if($ftp->connected) {
                    $exp = explode("file/upload/comment/", $saveto);
                    $remote = $exp[1];
                    if($ftp->dftp_put($do->saveto, $remote)) {
                        $saveto = $DT['remote_url'].$remote;
                        file_del(DT_ROOT.'/'.$do->saveto);
                    }
                }
            }
            return $saveto;
        }
    }
    /**
     * @param  integer $time [时间戳]
     * @param  integer $type [时间格式类型]
     * @return [type]        [返回时间格式类型]
     */
    function timetodate($time = 0, $type = 6) {
        if(!$time) $time = $GLOBALS['DT_TIME'];
        $types = array('Y-m-d', 'Y', 'm-d', 'Y-m-d', 'm-d H:i', 'Y-m-d H:i', 'Y-m-d H:i:s');
        if(isset($types[$type])) $type = $types[$type];
        $date = '';
        if($time > 2147212800) {        
            if(class_exists('DateTime')) {
                $D = new DateTime('@'.($time - 3600 * intval(str_replace('Etc/GMT', '', $GLOBALS['CFG']['timezone']))));
                $date = $D->format($type);
            }
        }
        return $date ? $date : date($type, $time);
    }

    /**
     * [linkurl description]
     * @param  [type] $linkurl [description]
     * @return [type]          [description]
     */
    function linkurl($linkurl) {
        return strpos($linkurl, '://') === false ? DT_PATH.$linkurl : $linkurl;
    }


    /**
     * [_delete description]
     * @param  [type] $print [要进行删除的图片的链接]
     * basename(path,suffix) 函数返回路径中的文件名部分。suffix可选。规定文件扩展名。如果文件有 suffix,则不会输出这个扩展名。
     */
    function _delete($print){
        $name=array();
        $name = explode('.', basename($print));
        delete_upload($print, $name['0']);
    }
    /**
     * [delete_upload 图片删除函数]
     * @param  [type] $file   [文件]
     * @param  [type] $userid [用户ID]
     */
    function delete_upload($file, $userid) {
        global $CFG, $DT, $DT_TIME, $ftp, $db;
        if(!defined('DT_ADMIN') && (!$userid || $userid != match_userid($file))) return false;
        if(!$file) return false;
        $fileurl = $file;
        require_once DT_ROOT.'/include/file.func.php';
        if(strpos($file, 'file/upload/comment') === false) {//Remote
            if($DT['ftp_remote'] && $DT['remote_url']) {
                if(strpos($file, $DT['remote_url']) !== false) {
                    if(!is_object($ftp)) {
                        require_once DT_ROOT.'/include/ftp.class.php';
                        $ftp = new dftp($DT['ftp_host'], $DT['ftp_user'], $DT['ftp_pass'], $DT['ftp_port'], $DT['ftp_path'], $DT['ftp_pasv'], $DT['ftp_ssl']);
                    }
                    $file = str_replace($DT['remote_url'], '', $file);
                    $ftp->dftp_delete($file);
                    if(strpos($file, '.thumb.') !== false) {
                        $ext = file_ext($file);
                        $F = str_replace('.thumb.'.$ext, '', $file);
                        $ftp->dftp_delete($F);
                        $F = str_replace('.thumb.'.$ext, '.middle.'.$ext, $file);
                        $ftp->dftp_delete($F);
                    }
                    if($DT['ftp_save']) delete_upload(DT_PATH.'file/upload/comment/'.$file, $userid);
                }
            }
        } else {
            $exp = explode("file/upload/comment/", $file);
            $file = DT_ROOT.'/file/upload/comment/'.$exp[1];
            if(is_file($file) && strpos($exp[1], '..') === false) {
                file_del($file);
                if(strpos($file, '.thumb.') !== false) {
                    $ext = file_ext($file);
                    file_del(str_replace('.thumb.'.$ext, '', $file));
                    file_del(str_replace('.thumb.'.$ext, '.middle.'.$ext, $file));
                }
            }
        }
        if($DT['uploadlog']) $db->query("DELETE FROM {$db->pre}upload_".($userid%10)." WHERE item='".md5($fileurl)."'");
    }

    /**
     * [match_userid description]
     * @param  [type] $file [description]
     * @return [type]       [description]
     * basename(path,suffix) 函数返回路径中的文件名部分。suffix可选。规定文件扩展名。如果文件有 suffix,则不会输出这个扩展名。
     */
    function match_userid($file) {
        $name = explode('.', basename($file));
        return $name[0];
        return (substr($name[0], strpos($name[0], '-') === false ? 8 : 12));
        return intval(substr($name[0], strpos($name[0], '-') === false ? 8 : 12));
    }
原创粉丝点击