⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myfiles.php

📁 一款文件上传程序
💻 PHP
📖 第 1 页 / 共 2 页
字号:
				{
					// 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&amp;file=' . $path_encoded;
				$ref['resize_url'] 		= 'myfiles.php?action=resize&amp;file=' . $path_encoded;
				$ref['download_url'] 	= 'file.php?action=download&amp;userid=' . $userid . '&amp;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 . '&amp;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&amp;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 == '' ? '' : '&amp;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 + -