亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? browser.jsp

?? jsp File Browser version 1.1a
?? JSP
?? 第 1 頁 / 共 5 頁
字號:
<%--
	jsp File browser 1.1a
	Copyright (C) 2003,2004, Boris von Loesch
	This program is free software; you can redistribute it and/or modify it under
	the terms of the GNU General Public License as published by the
	Free Software Foundation; either version 2 of the License, or (at your option)
	any later version.
	This program is distributed in the hope that it will be useful, but
	WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
	FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
	You should have received a copy of the GNU General Public License along with
	this program; if not, write to the
	Free Software Foundation, Inc.,
	59 Temple Place, Suite 330,
	Boston, MA 02111-1307 USA
	- Description: jsp File browser v1.1a -- This JSP program allows remote web-based
				file access and manipulation.  You can copy, create, move and delete files.
				Text files can be edited and groups of files and folders can be downloaded
				as a single zip file that's created on the fly.
	- Credits: Taylor Bastien, David Levine, David Cowan, Lieven Govaerts
--%>
<%@page import="java.util.*,
                java.net.*,
                java.text.*,
                java.util.zip.*,
                java.io.*"
%>
<%!
    //FEATURES
    private static final boolean NATIVE_COMMANDS = true;

    //Allow browsing and file manipulation only in certain directories
	private static final boolean RESTRICT_BROWSING = false;
    //If true, the user is allowed to browse only in RESTRICT_PATH,
    //if false, the user is allowed to browse all directories besides RESTRICT_PATH
    private static final boolean RESTRICT_WHITELIST = false;
    //Paths, sperated by semicolon
    //private static final String RESTRICT_PATH = "C:\\CODE;E:\\"; //Win32: Case important!!
	private static final String RESTRICT_PATH = "/etc;/var";

    //The refresh time in seconds of the upload monitor window
	private static final int UPLOAD_MONITOR_REFRESH = 2;
	//The number of colums for the edit field
	private static final int EDITFIELD_COLS = 85;
	//The number of rows for the edit field
	private static final int EDITFIELD_ROWS = 30;
	//Open a new window to view a file
	private static final boolean USE_POPUP = true;
	/**
	 * If USE_DIR_PREVIEW = true, then for every directory a tooltip will be
	 * created (hold the mouse over the link) with the first DIR_PREVIEW_NUMBER entries.
	 * This can yield to performance issues. Turn it of, if the directory loads to slow.
	 */
	private static final boolean USE_DIR_PREVIEW = true;
	private static final int DIR_PREVIEW_NUMBER = 10;
	/**
	 * The name of an optional CSS Stylesheet file
	 */
	private static final String CSS_NAME = "Browser.css";
	/**
	 * The compression level for zip file creation (0-9)
	 * 0 = No compression
	 * 1 = Standard compression (Very fast)
	 * ...
	 * 9 = Best compression (Very slow)
	 */
	private static final int COMPRESSION_LEVEL = 1;
	/**
	 * The FORBIDDEN_DRIVES are not displayed on the list. This can be usefull, if the
	 * server runs on a windows platform, to avoid a message box, if you try to access
	 * an empty removable drive (See KNOWN BUGS in Readme.txt).
	 */
	private static final String[] FORBIDDEN_DRIVES = {"a:\\"};

	/**
	 * Command of the shell interpreter and the parameter to run a programm
	 */
	private static final String[] COMMAND_INTERPRETER = {"cmd", "/C"}; // Dos,Windows
	//private static final String[] COMMAND_INTERPRETER = {"/bin/sh","-c"}; 	// Unix

	/**
	 * Max time in ms a process is allowed to run, before it will be terminated
	 */
	private static final long MAX_PROCESS_RUNNING_TIME = 30 * 1000; //30 seconds

	//Button names
	private static final String SAVE_AS_ZIP = "Download selected files as zip";
	private static final String RENAME_FILE = "Rename File";
	private static final String DELETE_FILES = "Delete selected files";
	private static final String CREATE_DIR = "Create Dir";
	private static final String CREATE_FILE = "Create File";
	private static final String MOVE_FILES = "Move Files";
	private static final String COPY_FILES = "Copy Files";

	//Normally you should not change anything after this line
	//----------------------------------------------------------------------------------
	//Change this to locate the tempfile directory for upload (not longer needed)
	private static String tempdir = ".";
	private static String VERSION_NR = "1.1a";
	private static DateFormat dateFormat = DateFormat.getDateTimeInstance();

	public class UplInfo {

		public long totalSize;
		public long currSize;
		public long starttime;
		public boolean aborted;

		public UplInfo() {
			totalSize = 0l;
			currSize = 0l;
			starttime = System.currentTimeMillis();
			aborted = false;
		}

		public UplInfo(int size) {
			totalSize = size;
			currSize = 0;
			starttime = System.currentTimeMillis();
			aborted = false;
		}

		public String getUprate() {
			long time = System.currentTimeMillis() - starttime;
			if (time != 0) {
				long uprate = currSize * 1000 / time;
				return convertFileSize(uprate) + "/s";
			}
			else return "n/a";
		}

		public int getPercent() {
			if (totalSize == 0) return 0;
			else return (int) (currSize * 100 / totalSize);
		}

		public String getTimeElapsed() {
			long time = (System.currentTimeMillis() - starttime) / 1000l;
			if (time - 60l >= 0){
				if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
				else return time / 60 + ":0" + (time % 60) + "m";
			}
			else return time<10 ? "0" + time + "s": time + "s";
		}

		public String getTimeEstimated() {
			if (currSize == 0) return "n/a";
			long time = System.currentTimeMillis() - starttime;
			time = totalSize * time / currSize;
			time /= 1000l;
			if (time - 60l >= 0){
				if (time % 60 >=10) return time / 60 + ":" + (time % 60) + "m";
				else return time / 60 + ":0" + (time % 60) + "m";
			}
			else return time<10 ? "0" + time + "s": time + "s";
		}

	}

	public class FileInfo {

		public String name = null, clientFileName = null, fileContentType = null;
		private byte[] fileContents = null;
		public File file = null;
		public StringBuffer sb = new StringBuffer(100);

		public void setFileContents(byte[] aByteArray) {
			fileContents = new byte[aByteArray.length];
			System.arraycopy(aByteArray, 0, fileContents, 0, aByteArray.length);
		}
	}

	public static class UploadMonitor {

		static Hashtable uploadTable = new Hashtable();

		static void set(String fName, UplInfo info) {
			uploadTable.put(fName, info);
		}

		static void remove(String fName) {
			uploadTable.remove(fName);
		}

		static UplInfo getInfo(String fName) {
			UplInfo info = (UplInfo) uploadTable.get(fName);
			return info;
		}
	}

	// A Class with methods used to process a ServletInputStream
	public class HttpMultiPartParser {

		private final String lineSeparator = System.getProperty("line.separator", "\n");
		private final int ONE_MB = 1024 * 1;

		public Hashtable processData(ServletInputStream is, String boundary, String saveInDir,
				int clength) throws IllegalArgumentException, IOException {
			if (is == null) throw new IllegalArgumentException("InputStream");
			if (boundary == null || boundary.trim().length() < 1) throw new IllegalArgumentException(
					"\"" + boundary + "\" is an illegal boundary indicator");
			boundary = "--" + boundary;
			StringTokenizer stLine = null, stFields = null;
			FileInfo fileInfo = null;
			Hashtable dataTable = new Hashtable(5);
			String line = null, field = null, paramName = null;
			boolean saveFiles = (saveInDir != null && saveInDir.trim().length() > 0);
			boolean isFile = false;
			if (saveFiles) { // Create the required directory (including parent dirs)
				File f = new File(saveInDir);
				f.mkdirs();
			}
			line = getLine(is);
			if (line == null || !line.startsWith(boundary)) throw new IOException(
					"Boundary not found; boundary = " + boundary + ", line = " + line);
			while (line != null) {
				if (line == null || !line.startsWith(boundary)) return dataTable;
				line = getLine(is);
				if (line == null) return dataTable;
				stLine = new StringTokenizer(line, ";\r\n");
				if (stLine.countTokens() < 2) throw new IllegalArgumentException(
						"Bad data in second line");
				line = stLine.nextToken().toLowerCase();
				if (line.indexOf("form-data") < 0) throw new IllegalArgumentException(
						"Bad data in second line");
				stFields = new StringTokenizer(stLine.nextToken(), "=\"");
				if (stFields.countTokens() < 2) throw new IllegalArgumentException(
						"Bad data in second line");
				fileInfo = new FileInfo();
				stFields.nextToken();
				paramName = stFields.nextToken();
				isFile = false;
				if (stLine.hasMoreTokens()) {
					field = stLine.nextToken();
					stFields = new StringTokenizer(field, "=\"");
					if (stFields.countTokens() > 1) {
						if (stFields.nextToken().trim().equalsIgnoreCase("filename")) {
							fileInfo.name = paramName;
							String value = stFields.nextToken();
							if (value != null && value.trim().length() > 0) {
								fileInfo.clientFileName = value;
								isFile = true;
							}
							else {
								line = getLine(is); // Skip "Content-Type:" line
								line = getLine(is); // Skip blank line
								line = getLine(is); // Skip blank line
								line = getLine(is); // Position to boundary line
								continue;
							}
						}
					}
					else if (field.toLowerCase().indexOf("filename") >= 0) {
						line = getLine(is); // Skip "Content-Type:" line
						line = getLine(is); // Skip blank line
						line = getLine(is); // Skip blank line
						line = getLine(is); // Position to boundary line
						continue;
					}
				}
				boolean skipBlankLine = true;
				if (isFile) {
					line = getLine(is);
					if (line == null) return dataTable;
					if (line.trim().length() < 1) skipBlankLine = false;
					else {
						stLine = new StringTokenizer(line, ": ");
						if (stLine.countTokens() < 2) throw new IllegalArgumentException(
								"Bad data in third line");
						stLine.nextToken(); // Content-Type
						fileInfo.fileContentType = stLine.nextToken();
					}
				}
				if (skipBlankLine) {
					line = getLine(is);
					if (line == null) return dataTable;
				}
				if (!isFile) {
					line = getLine(is);
					if (line == null) return dataTable;
					dataTable.put(paramName, line);
					// If parameter is dir, change saveInDir to dir
					if (paramName.equals("dir")) saveInDir = line;
					line = getLine(is);
					continue;
				}
				try {
					UplInfo uplInfo = new UplInfo(clength);
					UploadMonitor.set(fileInfo.clientFileName, uplInfo);
					OutputStream os = null;
					String path = null;
					if (saveFiles) os = new FileOutputStream(path = getFileName(saveInDir,
							fileInfo.clientFileName));
					else os = new ByteArrayOutputStream(ONE_MB);
					boolean readingContent = true;
					byte previousLine[] = new byte[2 * ONE_MB];
					byte temp[] = null;
					byte currentLine[] = new byte[2 * ONE_MB];
					int read, read3;
					if ((read = is.readLine(previousLine, 0, previousLine.length)) == -1) {
						line = null;
						break;
					}
					while (readingContent) {
						if ((read3 = is.readLine(currentLine, 0, currentLine.length)) == -1) {
							line = null;
							uplInfo.aborted = true;
							break;
						}
						if (compareBoundary(boundary, currentLine)) {
							os.write(previousLine, 0, read - 2);
							line = new String(currentLine, 0, read3);
							break;
						}
						else {
							os.write(previousLine, 0, read);
							uplInfo.currSize += read;
							temp = currentLine;
							currentLine = previousLine;
							previousLine = temp;
							read = read3;
						}//end else
					}//end while
					os.flush();
					os.close();
					if (!saveFiles) {
						ByteArrayOutputStream baos = (ByteArrayOutputStream) os;
						fileInfo.setFileContents(baos.toByteArray());
					}
					else fileInfo.file = new File(path);
					dataTable.put(paramName, fileInfo);
					uplInfo.currSize = uplInfo.totalSize;
				}//end try
				catch (IOException e) {
					throw e;
				}
			}
			return dataTable;
		}

		/**
		 * Compares boundary string to byte array
		 */
		private boolean compareBoundary(String boundary, byte ba[]) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩一区| 久久超级碰视频| 美女在线观看视频一区二区| 国产精品亚洲午夜一区二区三区 | 欧美四级电影在线观看| 欧美va天堂va视频va在线| 自拍偷拍欧美精品| 国产成人丝袜美腿| 日韩三级高清在线| 亚洲国产综合视频在线观看| 成人深夜在线观看| 精品久久久久久久久久久久包黑料| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国内成+人亚洲+欧美+综合在线| 欧美精品久久99| 亚洲一区二区美女| 91麻豆免费看片| 中文字幕一区二区三区在线播放| 老司机午夜精品| 制服.丝袜.亚洲.另类.中文| 一级特黄大欧美久久久| 成人av电影在线| 日本一区二区不卡视频| 国产一区二区精品久久99| 日韩午夜av一区| 久久精品噜噜噜成人av农村| 欧美精品日韩综合在线| 亚洲一区二区黄色| 欧美日韩一区高清| 亚洲午夜免费电影| 欧美日韩电影在线| 亚洲国产日韩在线一区模特| 在线一区二区三区| 亚洲一区二区美女| 欧美一二三四在线| 在线影视一区二区三区| 一区二区在线电影| 欧美三级午夜理伦三级中视频| 亚洲综合色婷婷| 欧美三级中文字幕在线观看| 日韩在线播放一区二区| 精品少妇一区二区三区在线视频| 精品一区二区免费看| 久久影视一区二区| 99免费精品在线| 亚洲一区二区在线免费观看视频| 欧美日韩一区二区三区免费看| 亚洲一卡二卡三卡四卡无卡久久 | 国产在线视视频有精品| 久久伊人蜜桃av一区二区| 成人一区二区三区在线观看| 国产精品久久一卡二卡| 欧美性生活影院| 蜜臀av一区二区在线观看| 久久综合九色综合97婷婷女人| 国产成人精品一区二区三区网站观看| 国产精品人妖ts系列视频| 99精品视频一区| 日韩电影在线免费| 国产精品美女www爽爽爽| 日本二三区不卡| 麻豆成人av在线| 国产精品久久久久久久久果冻传媒 | 伊人开心综合网| 91超碰这里只有精品国产| 国产一区二区视频在线| 中文字幕一区二区三区四区不卡| 欧美精品日韩综合在线| 大桥未久av一区二区三区中文| 亚洲午夜免费电影| 国产欧美一区二区在线观看| 欧美性大战久久久久久久| 狠狠狠色丁香婷婷综合久久五月| 亚洲三级在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 99久久精品国产精品久久| 日本不卡一二三区黄网| 综合久久久久久久| 欧美xingq一区二区| 欧美亚洲一区三区| 成人免费av网站| 蜜桃视频在线观看一区| 一二三区精品视频| 国产亚洲一区二区三区| 欧美理论电影在线| av午夜一区麻豆| 国内久久精品视频| 日本欧美肥老太交大片| 亚洲免费伊人电影| 国产精品网曝门| 欧美精品一区二区三| 欧美人妖巨大在线| 日本丶国产丶欧美色综合| 国产999精品久久久久久绿帽| 日本午夜一区二区| 亚洲动漫第一页| 亚洲免费在线视频| 亚洲天堂福利av| 国产精品二三区| 国产精品免费网站在线观看| 精品免费一区二区三区| 欧美日本一区二区在线观看| 99国产精品久久久久久久久久 | 国产欧美一区二区精品秋霞影院 | 欧美三级中文字幕在线观看| 91蜜桃在线免费视频| 不卡一二三区首页| 成人黄色在线网站| 成人国产精品视频| 不卡av免费在线观看| 豆国产96在线|亚洲| 国产91精品入口| 国产精品一区2区| 大陆成人av片| 成人sese在线| 97久久超碰精品国产| 91小视频免费看| 色伊人久久综合中文字幕| 91伊人久久大香线蕉| 99re热这里只有精品免费视频 | 国产精品亚洲一区二区三区在线 | 欧美无乱码久久久免费午夜一区| 91视频一区二区三区| 91黄色免费看| 欧美视频一区二区在线观看| 欧美日韩国产精品自在自线| 91精品国产综合久久久蜜臀粉嫩| 欧美人伦禁忌dvd放荡欲情| 欧美一区午夜精品| 久久午夜国产精品| 亚洲色图.com| 日韩高清不卡一区二区三区| 精品一区二区三区不卡| 成人福利视频在线看| 91豆麻精品91久久久久久| 欧美一级在线观看| 久久精品夜色噜噜亚洲aⅴ| 1000部国产精品成人观看| 艳妇臀荡乳欲伦亚洲一区| 天天影视色香欲综合网老头| 精品无人区卡一卡二卡三乱码免费卡| 国产成人午夜片在线观看高清观看 | 色婷婷av一区| 在线电影欧美成精品| 欧美精品一区二区蜜臀亚洲| 亚洲欧洲99久久| 日韩成人精品视频| 国产成人免费高清| 色哟哟国产精品| 久久日一线二线三线suv| 国产精品久线在线观看| 日本在线播放一区二区三区| 大胆欧美人体老妇| 欧美一级高清片在线观看| 一区精品在线播放| 美日韩一区二区| 在线观看日韩av先锋影音电影院| 欧美一区欧美二区| 亚洲三级在线免费观看| 韩日欧美一区二区三区| 欧美亚洲综合另类| 中文字幕乱码久久午夜不卡| 日日夜夜精品视频天天综合网| 国产精品白丝av| 欧美精选午夜久久久乱码6080| 中文字幕第一区| 久久精品99国产精品日本| 色婷婷久久一区二区三区麻豆| 精品成人一区二区三区四区| 亚洲国产视频一区二区| bt7086福利一区国产| 2020国产精品自拍| 日韩综合小视频| 91福利社在线观看| 亚洲天堂久久久久久久| 国产高清在线观看免费不卡| 欧美一区二区三区在| 亚洲激情五月婷婷| 95精品视频在线| 中文字幕免费观看一区| 国产在线精品一区二区三区不卡| 欧美日韩国产另类一区| 亚洲一级二级三级| 91女厕偷拍女厕偷拍高清| 欧美极品另类videosde| 激情五月激情综合网| 日韩欧美中文字幕制服| 日韩国产欧美视频| 欧美另类变人与禽xxxxx| 亚洲一区二区三区四区的| 91久久人澡人人添人人爽欧美 | 99久久精品国产导航| 中文字幕第一区| 不卡视频在线看| 欧美激情中文字幕一区二区| 国产sm精品调教视频网站| 久久久亚洲午夜电影| 国产成人av电影在线播放| 久久婷婷一区二区三区| 国产一区二区中文字幕|