📄 myfiles.php
字号:
{
// show the resize form again, with error
$real_file_name = basename ( $file_path );
$tpl_error->set ( 'error', $error );
// this block is not the same as the block you see down there
$tpl_resize->set ( 'error', $tpl_error );
$tpl_resize->set ( 'file_path', path_encode ( $file_path ) );
$tpl_resize->set ( 'file_name', htmlentities ( $real_file_name ) );
$tpl_resize->set ( 'file_url', USERFILES_URL . dir_name ( $file_path ) . '/' . rawurlencode ( $real_file_name ) );
$tpl_resize->set ( 'file_thumb', $file_name );
$tpl_resize->set ( 'file_width', $file_info[0] );
$tpl_resize->set ( 'file_height', $file_info[1] );
$tpl_resize->set ( 'cancel_url', 'myfiles.php?folder=' . path_encode ( dir_name ( $file_path ) ) );
$tpl_uploader->setr ( 'content', $tpl_resize, 1 );
}
}
else
{
// show errors and exit
$tpl_message->set ( 'message', $error );
$tpl_message->set ( 'back_url', 'myfiles.php' );
$tpl_uploader->set ( 'content', $tpl_message, 1 );
exit;
}
}
else
{
// show resize form
$file_path = gpc ( 'file', 'G' );
if ( $file_path == '' || strstr ( $file_path, '../' ) || !is_file ( USERFILES_ROOT . $file_path ) ) $error = $lang_myfiles['file_not_supported'];
elseif ( !is_image ( USERFILES_ROOT . $file_path, true ) ) $error = $lang_myfiles['type_not_supported'];
else $error = 'none';
if ( $error != 'none' )
{
// show errors
$tpl_message->set ( 'message', $error );
$tpl_message->set ( 'back_url', 'myfiles.php' );
$tpl_uploader->set ( 'content', $tpl_message, 1 );
exit;
}
else
{
// show resize form
$file_name = basename ( $file_path );
$file_info = getimagesize ( USERFILES_ROOT . $file_path );
// this block is not the same as the block you see up there
$tpl_resize->set ( 'file_path', path_encode ( $file_path ) );
$tpl_resize->set ( 'file_name', htmlentities ( $file_name ) );
$tpl_resize->set ( 'file_url', USERFILES_URL . dir_name ( $file_path ) . '/' . rawurlencode ( $file_name ) );
$tpl_resize->set ( 'file_thumb', get_filename ( $file_name ) . '_thumb.' . get_extension ( $file_name ) );
$tpl_resize->set ( 'file_width', $file_info[0] );
$tpl_resize->set ( 'file_height', $file_info[1] );
$tpl_resize->set ( 'cancel_url', 'myfiles.php' . ( dir_name ( $file_path ) != '' ? '?folder=' . path_encode ( dir_name ( $file_path ) ) : '' ) );
$tpl_uploader->setr ( 'content', $tpl_resize, 1 );
}
}
}
break;
case 'rename':
{
$tpl_rename = new Template ( TPL_DIR . 'tpl_rename.php' );
$allow_rename = $UPL['USER']['fl_rename_permission'];
$allowed_filetypes = $UPL['USER']['fl_allowed_types'];
// can user rename?
if ( $allow_rename == 0 )
{
$tpl_message->set ( array ( 'message' => $lang_myfiles['no_rename_perm'], 'back_url' => 'myfiles.php' ) );
$tpl_uploader->set ( 'content', $tpl_message, 1 );
exit;
}
// ok to rename
if ( $task == 'rename' )
{
$file_path = path_decode ( gpc ( 'file_path', 'P', '' ) );
$file_name = gpc ( 'file_name', 'P', '' );
$new_file_path = dir_name ( $file_path ) . '/' . $file_name;
if ( !check_path ( USERFILES_ROOT, USERFILES_ROOT . $file_path ) || !check_path ( USERFILES_ROOT, USERFILES_ROOT . '/' . dir_name ( $file_path ) ) )
{
exit ( SECURITY_ERROR );
}
if ( basename ( $file_path ) == $file_name )
{
// no change
go_to ( 'myfiles.php' . ( dir_name ( $file_path ) != '' ? '?folder=' . path_encode ( dir_name ( $file_path ) ) : '' ) );
}
else
{
// check new filename
if ( $file_name == '' ) $error = $lang_myfiles['blank_filename'];
elseif ( !preg_match ( '#[a-z0-9]#i', $file_name[0] ) ) $error = $lang_myfiles['alpha_prefix'];
elseif ( strlen ( $file_name ) > $UPL['CONFIGS']['FILE_MAX_LEN'] ) $error = parse ( $lang_myfiles['long_name'], '{length}', $UPL['CONFIGS']['FILE_MAX_LEN'] );
elseif ( strlen ( $file_name ) < $UPL['CONFIGS']['FILE_MIN_LEN'] ) $error = $lang_myfiles['short_name'];
elseif ( preg_match ( $UPL['CONFIGS']['REGEX_INVALID_CHARS'], $file_name ) ) $error = $lang_myfiles['invalid_char2'];
elseif ( file_exists ( USERFILES_ROOT . $new_file_path ) ) $error = $lang_myfiles['file_exists'];
elseif ( $allow_rename == 1 && ( get_extension ( basename ( $file_path ) ) ) != get_extension ( $file_name ) ) $error = $lang_myfiles['filename_only'];
elseif ( $allow_rename == 2 && $allowed_filetypes != '' && !in_array ( get_extension ( $file_name ), explode ( ',', $allowed_filetypes ) ) ) $error = $lang_myfiles['bad_extension'];
elseif ( in_array ( get_extension ( $file_name ), explode ( ',', $UPL['SETTINGS']['filetypes'] ) ) ) $error = $lang_myfiles['bad_extension'];
elseif ( !rename ( USERFILES_ROOT . $file_path, USERFILES_ROOT . $new_file_path ) ) $error = 'Internal error: rename() failed.';
else $error = 'none';
if ( $error == 'none' )
{
// rename the thumbnail, if it exists
$thumb_path = USERFILES_ROOT . dir_name ( $file_path ) . '/thumbs/';
if ( is_dir ( $thumb_path ) )
{
if ( !rename ( $thumb_path . basename ( $file_path ), $thumb_path . $file_name ) ) $error = 'Internal error: rename() failed.';
}
clear_contents_cache ( USERFILES_ROOT );
go_to ( 'myfiles.php' . ( dir_name ( $file_path ) != '' ? '?folder=' . path_encode ( dir_name ( $file_path ) ) : '' ) );
}
else
{
// show errors
$tpl_error->set ( 'error', $error );
$tpl_rename->set ( 'error', $tpl_error );
$tpl_rename->set ( 'file_path', path_encode ( $file_path ) );
$tpl_rename->set ( 'file_name', htmlentities ( $file_name ) );
$tpl_rename->set ( 'cancel_url', 'myfiles.php' );
$tpl_uploader->set ( array ( 'content' => $tpl_rename, 'page_title' => $lang_titles['error'] ), '', 1 );
}
}
}
else
{
// show rename form
$file_path = gpc ( 'file', 'G' );
// check file
if ( $file_path == '' || strstr ( $file_path, '../' ) || !is_file ( USERFILES_ROOT . $file_path ) )
{
$tpl_message->set ( 'message', $lang_myfiles['file_not_supported'] );
$tpl_message->set ( 'back_url', 'myfiles.php' );
$tpl_uploader->set ( 'content', $tpl_message, 1 );
exit;
}
$tpl_rename->set ( 'file_path', path_encode ( $file_path ) );
$tpl_rename->set ( 'file_name', htmlentities ( basename ( $file_path ) ) );
$tpl_rename->set ( 'cancel_url', isset ( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : 'myfiles.php' );
$tpl_uploader->setr ( 'content', $tpl_rename );
$tpl_uploader->set ( 'page_title', $lang_titles['mf_rename'], 1 );
exit;
}
}
break;
default:
{
$folder = path_decode ( gpc ( 'folder', 'G' ) ); // Current viewing folder
// get user contents
$user_contents = get_contents ( USERFILES_ROOT );
$user_folders = &$user_contents['dirs'];
// Check if folder is valid
$idx = $folder==''?'<MAIN_FOLDER>':$folder;
if ( !isset ( $user_contents['files'][$idx] ) )
{
$tpl_message->set ( 'message', parse ( $lang_myfiles['folder_invalid'], '{folder}', $folder ) );
$tpl_uploader->setr ( 'content', $tpl_message, 1 );
exit;
}
$user_files = &$user_contents['files'][$idx];
$current_folder_info = get_folder_info ( USERFILES_ROOT . $folder );
// Statistic variables
$current_folder_size = 0;
$total_file_size = $user_contents['total_size'];
$main_folder =& $user_contents['files']['<MAIN_FOLDER>'];
$max_storage = $UPL['USER']['fl_max_storage'] * 1024 * 1024; // Bytes
$bw_max = $UPL['USER']['bw_max'] * 1024; // KB
$bw_used = $UPL['USER']['bw_used']; // KB
// Format files list
$user_files_count = count ( $user_files );
if ( $user_files_count )
{
$userid = $UPL['USER']['userid'];
for ( $i = 0; $i < $user_files_count; ++$i )
{
$ref = &$user_files[$i];
$path_encoded = path_encode(($folder==''?'':$folder.'/').$ref['name']);
$current_folder_size += $ref['size'];
$ref['date_string'] = date ( $UPL['CONFIGS']['TIME_FORMAT'], $ref['date'] );
$ref['ext'] = get_extension ( $ref['name'] );
$ref['rename_url'] = 'myfiles.php?action=rename&file=' . $path_encoded;
$ref['resize_url'] = 'myfiles.php?action=resize&file=' . $path_encoded;
$ref['download_url'] = 'file.php?action=download&userid=' . $userid . '&file=' . $path_encoded;
$ref['file_url'] = USERFILES_URL . trim ( clean_url ( $folder . '/' . rawurlencode ( $ref['name'] ) ), '/' );
$ref['link_url'] = $ref['is_image'] && $uploader_view ? ( MOD_REWRITE ? ( $userfiles_url . 'view/' . $userid . '/' . trim ( clean_url ( $folder . '/' . rawurlencode ( $ref['name'] ) ), '/' ) ) : ( 'view.php?userid=' . $userid . '&file=' . trim ( clean_url ( $folder . '/' . rawurlencode ( $ref['name'] ) ), '/' ) ) ) : ( USERFILES_URL . trim ( clean_url ( $folder . '/' . rawurlencode ( $ref['name'] ) ), '/' ) );
$ref['thumb_url'] = USERFILES_URL . trim ( clean_url ( $folder . '/thumbs/' . rawurlencode ( $ref['name'] ) ), '/' );
$ref['type'] = get_extension ( $ref['name'] );
$ref['size_raw'] = $ref['size'];
$ref['size'] = get_size ( $ref['size'], 'B', 0 );
$ref['form_name'] = rawurlencode ( $ref['name'] );
$ref['full_name'] = htmlentities ( $ref['name'] );
}
}
$user_files = array_values ( $user_files );
// Format directories list
$user_folders_count = count ( $user_folders );
$rebuild_array = false;
for ( $i = 0; $i < $user_folders_count; ++$i )
{
$ref = &$user_folders[$i];
if ( $ref['name'] == 'thumbs' )
{
unset ( $user_folders[$i] );
$rebuild_array = true;
continue;
}
$folder_info = get_folder_info ( USERFILES_ROOT . $ref['path'] );
$ref['is_gallery'] = $folder_info['is_gallery'];
$ref['is_selected'] = $folder == $ref['path'];
if ( MOD_REWRITE ) $ref['folder_url'] = 'myfiles/' . $ref['path'];
else $ref['folder_url'] = 'myfiles.php' . ( $ref['path'] != '' ? '?folder=' . path_encode ( $ref['path'] ) : '' );
}
if ( $rebuild_array )
{
$user_folders = array_values ( $user_folders );
$user_folders_count = count ( $user_folders );
}
// Assign variables
$tpl_vars = array
(
'user_files' => $user_files,
'user_folders' => $user_folders,
'current_folder_tog_url' => 'folders.php?action=togpublic&folder=' . path_encode ( $folder ),
'current_folder_is_public' => $current_folder_info['is_public'],
'current_folder_description' => $current_folder_info['description'],
'current_folder_is_gallery' => $current_folder_info['is_gallery'],
'current_folder' => basename ( $folder ),
'current_folder_path' => path_encode ( $folder ),
'current_folder_upload_url' => MOD_REWRITE ? 'upload/' . ( $folder ) : ( $folder == '' ? 'upload.php' : 'upload.php?upload_to=' . path_encode ( $folder ) ),
'current_folder_properties_url' => 'folders.php?action=edit' . ( $folder == '' ? '' : '&folder=' . path_encode ( $folder ) ),
'current_folder_size' => get_size ( $current_folder_size, 'B', 1 ),
'current_folder_file_count' => $user_files_count,
'main_folder_file_count' => count ( $main_folder ),
'total_file_size' => get_size ( $total_file_size, 'B', 1 ),
'max_file_storage' => get_size ( $max_storage, 'B', 1 ),
'space_usage_percentage' => $max_storage == 0 ? 0 : ( number_format ( $total_file_size / $max_storage, 2 ) ) * 100,
'bandwidth_usage_percentage' => $bw_max == 0 ? 0 : ( number_format ( $bw_used / $bw_max, 2 ) ) * 100,
'bandwidth_used' => get_size ( $bw_used, 'KB', 1 ),
'max_bandwidth' => get_size ( $bw_max, 'KB', 1 ),
);
$tpl_myfiles->set ( $tpl_vars );
// Display
$tpl_uploader->set ( array ( 'content' => &$tpl_myfiles, 'page_title' => $lang_titles['mf_title1'] ), '', 1 );
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -