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; }
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); } }
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'] : '';
* @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; } }
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; } } } }
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; } } } } }
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; } }