Пример #1
0
 public function getDataByPath($path)
 {
     $data = array();
     $patharr = explode(':', $path);
     $bzarr = C::t('connect')->fetch_all_bz();
     if (in_array($patharr[0], $bzarr)) {
         $bz = $patharr[0];
     } else {
         $bz = 'dzz';
     }
     if ($bz == 'dzz') {
         list($idtype, $id) = explode('_', str_replace('dzz:', '', $path));
         if ($idtype == 'fid') {
             $data = C::t('folder')->fetch_by_fid($id);
             $data['name'] = $data['title'];
             $data['oid'] = $data['fid'];
             $data['bz'] = '';
             $data['path'] = $data['fid'];
             $data['topfid'] = array();
             $data['type'] = 'folder';
             $data['folderarr'] = IO::getFolderDatasByPath($id);
             foreach ($data['folderarr'] as $value) {
                 $data['topfid'][] = $value['fid'];
             }
         } elseif ($idtype == 'icoid') {
             $data = C::t('icos')->fetch_by_icoid($id);
             if ($data['type'] == 'folder') {
                 $data['topfid'] = array();
                 $data['folderarr'] = IO::getFolderDatasByPath($data['oid']);
                 foreach ($data['folderarr'] as $value) {
                     $data['topfid'][] = $value['fid'];
                 }
             }
         }
     } else {
         $data = IO::getMeta($path);
         if ($data['type'] == 'folder') {
             $data['topfid'] = array();
             $data['folderarr'] = IO::getFolderDatasByPath($data['path']);
             foreach ($data['folderarr'] as $value) {
                 if (!empty($value['fid'])) {
                     $data['topfid'][] = $value['fid'];
                 }
             }
             $data['topfid'] = array_reverse($data['topfid']);
         }
     }
     return $data;
 }
Пример #2
0
 public function multiUpload($opath, $path, $filename, $attach = array(), $ondup = "newcopy")
 {
     global $_G;
     /* 
      * 分块上传文件
      * param $file:文件路径(可以是url路径,需要服务器开启allow_url_fopen);
      */
     $partsize = 1024 * 1024 * 5;
     //分块大小2M
     if ($attach) {
         $data = $attach;
         $data['size'] = $attach['filesize'];
     } else {
         $data = IO::getMeta($opath);
         if ($data['error']) {
             return $data;
         }
     }
     $size = $data['size'];
     if (is_array($filepath = IO::getStream($opath))) {
         return array('error' => $filepath['error']);
     }
     if ($size < $partsize) {
         //获取文件内容
         if (!($handle = fopen($filepath, 'rb'))) {
             return array('error' => '打开文件错误');
         }
         while (!feof($handle)) {
             $fileContent .= fread($handle, 8192);
             //if(strlen($fileContent)==0) return array('error'=>'文件不存在');
         }
         return self::upload($fileContent, $path, $filename, false, $ondup);
     } else {
         //分片上传
         self::deleteCache($path . $filename);
         if (!($handle = fopen($filepath, 'rb'))) {
             return array('error' => '打开文件错误');
         }
         $fileContent = '';
         while (!feof($handle)) {
             $fileContent .= fread($handle, 8192);
             //if(strlen($fileContent)==0) return array('error'=>'文件不存在');
             if (strlen($fileContent) >= $partsize) {
                 $re = self::upload($fileContent, $path, $filename, true, $ondup);
                 if ($re['error']) {
                     return $re;
                 }
                 $fileContent = '';
             }
         }
         fclose($handle);
         if (!empty($fileContent)) {
             $re = self::upload($fileContent, $path, $filename, true, $ondup);
             if ($re['error']) {
                 return $re;
             }
         }
         //分片上传结束,合并分片文件
         return self::createSuperFile($path, $filename, $ondup);
     }
 }
Пример #3
0
    require_once DZZ_ROOT . './dzz/class/class_encode.php';
    $p = new Encode_Core();
    $code = $p->get_encoding($str);
    if ($code) {
        $str = diconv($str, $code, CHARSET);
    }
    $str = htmlspecialchars($str);
    include template('textviewer');
} else {
    if (!($path = dzzdecode($_GET['path']))) {
        showmessage('参数错误!');
    }
    $dpath = dzzencode($path);
    $error = '';
    $table = '';
    $icoarr = IO::getMeta($path);
    $maxputsize = 0;
    //get_config_bytes(ini_get('post_max_size'));
    if (!$maxputsize) {
        $maxputsize = 2000000;
    }
    if ($icoarr['size'] > $maxputsize) {
        $url = DZZSCRIPT . '?mod=textviewer&path=' . dzzencode($path);
        header("Location: {$url}");
        exit;
    }
    if (isset($icoarr['error'])) {
        exit($icoarr['error']);
    }
    //根据ext获取加载codemirror的mode;
    $ext = isset($icoarr['ext']) ? $icoarr['ext'] : '';
Пример #4
0
 * @author      zyx(zyx@dzz.cc)
 */
@set_time_limit(0);
include_once libfile('class/ZipStream');
$patharr = $_GET['paths'];
print_r($_GET);
exit('dfdsfsf');
$meta = IO::getMeta(dzzdecode($patharr[0]));
if ($meta['error']) {
    exit($meta['error']);
}
$filename = strtolower(CHARSET) == 'utf-8' && (strexists($_SERVER['HTTP_USER_AGENT'], 'MSIE') || strexists($_SERVER['HTTP_USER_AGENT'], 'rv:11')) ? urlencode($meta['name']) : $meta['name'];
$zip = new ZipStream($filename . ".zip");
foreach ($patharr as $dpath) {
    $path = dzzdecode($dpath);
    $meta = IO::getMeta($path);
    switch ($meta['type']) {
        case 'app':
        case 'video':
        case 'dzzdoc':
        case 'link':
            continue;
            break;
        case 'folder':
            IO::getFolderInfo($path, $meta['name'], $zip);
            break;
        default:
            $zip->addLargeFile(fopen(IO::getStream($path), 'rb'), $meta['name'], $meta['dateline']);
            break;
    }
}
Пример #5
0
 public function multiUpload($opath, $path, $filename, $attach = array(), $ondup = "newcopy")
 {
     global $_G;
     /* 
      * 分块上传文件
      * param $file:文件路径(可以是url路径,需要服务器开启allow_url_fopen);
      */
     @set_time_limit(0);
     $partsize = 1024 * 1024 * 2;
     //分块大小2M
     if ($attach) {
         $data = $attach;
         $data['size'] = $attach['filesize'];
     } else {
         $data = IO::getMeta($opath);
         if ($data['error']) {
             return $data;
         }
     }
     if ($data['error']) {
         return $data;
     }
     $size = $data['size'];
     if (is_array($filepath = IO::getStream($opath))) {
         return array('error' => $filepath['error']);
     }
     //exit(($size<$partsize).'===='.$size.'==='.$filepath.'===='.$path);
     if ($size < $partsize) {
         //获取文件内容
         $fileContent = '';
         if (!($handle = fopen($filepath, 'rb'))) {
             return array('error' => '文件打开错误');
         }
         while (!feof($handle)) {
             $fileContent .= fread($handle, 8192);
             //if(strlen($fileContent)==0) return array('error'=>'文件不存在');
         }
         fclose($handle);
         //exit('upload');
         return self::upload_by_content($fileContent, $path, $filename);
     } else {
         //分片上传
         $partinfo = array('ispart' => true, 'partnum' => 0, 'iscomplete' => false);
         if (!($handle = fopen($filepath, 'rb'))) {
             return array('error' => '文件打开错误');
         }
         //stream_set_timeout($handle,5);
         $ext = strtolower(substr(strrchr($filename, '.'), 1));
         $cachefile = $_G['setting']['attachdir'] . './cache/' . md5($opath) . '.' . $ext;
         while (!feof($handle)) {
             $fileContent .= fread($handle, 8192);
             //if(strlen($fileContent)==0) return array('error'=>'文件不存在');
             if (strlen($fileContent) > $partsize) {
                 $partinfo['partnum'] += 1;
                 if ($partinfo['partnum'] * $partsize >= $size) {
                     $partinfo['iscomplete'] = true;
                 }
                 file_put_contents($cachefile, $fileContent);
                 $re = self::upload($cachefile, $path, $filename, $partinfo);
                 if ($re['error']) {
                     return $re;
                 }
                 if ($partinfo['iscomplete']) {
                     @unlink($cachefile);
                     return $re;
                 }
                 $fileContent = '';
             }
         }
         fclose($handle);
         if (!empty($fileContent)) {
             $partinfo['partnum'] += 1;
             $partinfo['iscomplete'] = true;
             file_put_contents($cachefile, $fileContent);
             $re = self::upload($cachefile, $path, $filename, $partinfo);
             if ($re['error']) {
                 return $re;
             }
             if ($partinfo['iscomplete']) {
                 @unlink($cachefile);
                 return $re;
             }
         }
     }
 }
Пример #6
0
 public function multiUpload($opath, $path, $filename, $attach = array(), $ondup = "newcopy")
 {
     /* 
      * 分块上传文件
      * param $file:文件路径(可以是url路径,需要服务器开启allow_url_fopen);
      */
     $partsize = 1024 * 1024 * 5;
     //分块大小2M
     $data = IO::getMeta($opath);
     if ($data['error']) {
         return $data;
     }
     $size = $data['size'];
     if (is_array($filepath = IO::getStream($opath))) {
         return array('error' => $filepath['error']);
     }
     if ($size < $partsize) {
         //获取文件内容
         $fileContent = '';
         if (!($handle = fopen($filepath, 'rb'))) {
             return array('error' => '打开文件错误');
         }
         while (!feof($handle)) {
             $fileContent .= fread($handle, 8192);
         }
         fclose($handle);
         return self::upload($fileContent, $path, $filename);
     } else {
         //分片上传
         $partinfo = array('ispart' => true, 'partnum' => 0, 'flag' => $path, 'iscomplete' => false);
         if (!($handle = fopen($filepath, 'rb'))) {
             return array('error' => '打开文件错误');
         }
         $fileContent = '';
         while (!feof($handle)) {
             $fileContent .= fread($handle, 8192);
             if (strlen($fileContent) >= $partsize) {
                 $partinfo['partnum'] += 1;
                 if ($partinfo['partnum'] * $partsize >= $size) {
                     $partinfo['iscomplete'] = true;
                 }
                 if ($re = self::upload($fileContent, $path, $filename, $partinfo)) {
                     if ($re['error']) {
                         return $re;
                     }
                     if ($partinfo['iscomplete']) {
                         return $re;
                     }
                 }
                 $fileContent = '';
             }
         }
         fclose($handle);
         if (!empty($fileContent)) {
             $partinfo['partnum'] += 1;
             $partinfo['iscomplete'] = true;
             if ($re = self::upload($fileContent, $path, $filename, $partinfo)) {
                 if ($re['error']) {
                     return $re;
                 }
                 if ($partinfo['iscomplete']) {
                     return $re;
                 }
             }
         }
     }
 }
Пример #7
0
 public function multiUpload($opath, $path, $filename, $attach = array(), $ondup = "newcopy")
 {
     global $_G;
     @set_time_limit(0);
     /* 
      * 分块上传文件
      * param $file:文件路径(可以是url路径,需要服务器开启allow_url_fopen);
      */
     $partsize = 1024 * 1024 * 4;
     //分块大小2M
     if ($attach) {
         $data = $attach;
         $data['size'] = $attach['filesize'];
     } else {
         $data = IO::getMeta($opath);
         if ($data['error']) {
             return $data;
         }
     }
     $size = $data['size'];
     if (is_array($filepath = IO::getStream($opath))) {
         return array('error' => $filepath['error']);
     }
     if ($size < $partsize) {
         //获取文件内容
         $fileContent = '';
         if (!($handle = fopen($filepath, 'rb'))) {
             return array('error' => '打开文件错误');
         }
         while (!feof($handle)) {
             $fileContent .= fread($handle, 8192);
             //if(strlen($fileContent)==0) return array('error'=>'文件不存在');
         }
         fclose($handle);
         return self::upload_by_content($fileContent, $path, $filename);
     } else {
         //分片上传
         if (!($handle = fopen($filepath, 'rb'))) {
             return array('error' => '打开文件错误');
         }
         $partinfo = array('ispart' => true);
         $cachefile = $_G['setting']['attachdir'] . './cache/' . md5($opath);
         while (!feof($handle)) {
             file_put_contents($cachefile, fread($handle, 8192), FILE_APPEND);
         }
         $re = self::upload($cachefile, $path, $filename);
         @unlink($cachefile);
         return $re;
     }
 }