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

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

?? uploadservlet.java

?? 對(duì)上傳文件有進(jìn)度條的源碼的改進(jìn)
?? JAVA
字號(hào):
package book.upload;

import db.*;

import java.io.*;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.mysql.jdbc.ResultSet;

public class UploadServlet extends HttpServlet {

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {

        //創(chuàng)建HttpSession對(duì)象
		HttpSession session = request.getSession();

		if ("status".equals(request.getParameter("c"))) {//如果請(qǐng)求中c的值為status
			doStatus(session, response);//調(diào)用doStatus方法
		} else {//否則,調(diào)用doFileUpload方法
			doFileUpload(session, request, response);
		}
	}

	//上傳文件保存路徑為C:\\upload
	String FilePath="D:\\upload";
	String SFilePath="D:\\\\upload";
	String sqlFirst="insert into file_data (Name,Programe,Source_Explain,User_Id,User_Name,Source_Time,Accessory_Local_Path,file_Sort,file_Name,file_NewName,file_Size,file_Time,url_info) values(";
	String sqlEnd=")";
	String sqlField,sqlFile;

	//存儲(chǔ)獲得的唯一id號(hào)
	String ISequenceId;
	//生成唯一的id號(hào)
	public String getSequenceId()
	{

		try {
			String sqlSequenceId="select LAST_INSERT_ID()",sqlTemp="insert into sequence values()";
			String Iid = null;
			DBS Mconn=new DBS();
			Mconn.executeUpdate(sqlTemp);
			ResultSet rs=(ResultSet)Mconn.executeQuery(sqlSequenceId);
			if(rs.next()){Iid=rs.getString(1);}
			rs.close();
			Mconn.sClose();
			long Ltime=System.currentTimeMillis();
			return ((""+Ltime)+Iid);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
		
	}
	
	//執(zhí)行拼接后的sql語(yǔ)句。
	public void sqlExcute(String sql)
	{		
		DBS Mconn=new DBS();
		Mconn.executeUpdate(sql);
		Mconn.sClose();
	}
	
	//返回當(dāng)前的時(shí)間字符串(格式化后的,可直接向數(shù)據(jù)庫(kù)插入)
	public String getNewTime()
	{
		SimpleDateFormat myFmt=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
		Date d = new Date(); 
		return (myFmt.format(d).toString()); 
	}
	
	public void processUploadedField(List items)
	{	
		//沒(méi)上傳一類文件就生成一次唯一Id
		ISequenceId=getSequenceId();
		//sql語(yǔ)句的values值
		String SName="NULL",SPrograme="NULL",SExplain="NULL",SUser_Id="0",SUser_Name="NULL",SSource_Time=getNewTime(),SAccessory_Local_Path=SFilePath;	 
		try {
		for (Iterator i = items.iterator(); i.hasNext();) 
		{
			FileItem item = (FileItem) i.next();
			//獲得表單域名稱			            
            String FieldName = item.getFieldName();         			
			//獲得表單域值
			String FieldValue = item.getString("GB2312");
			if("name".equals(FieldName))
			{
				SName=FieldValue;
			}else if("projectID".equals(FieldName))
			{
				SPrograme=FieldValue;
			}else if("description".equals(FieldName))
			{
				SExplain=FieldValue;
			}

			item.delete();//內(nèi)存中刪除該數(shù)據(jù)流
		}
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		sqlField="'"+SName+"','"+SPrograme+"','"+SExplain+"',"+SUser_Id+",'"+SUser_Name+"','"+SSource_Time+"','"+SAccessory_Local_Path+"'";
	}
	 
	public void processUploadedFile(List items) 
	{
		String Sfile_Sort=ISequenceId,Sfile_Name,Sfile_Size,Sfile_Time=getNewTime(),Surl_info="NULL";
		for (Iterator i = items.iterator(); i.hasNext();) 
		{
			FileItem item = (FileItem) i.next();
			//獲得上傳文件的文件名
			String fileName = item.getName().substring(item.getName().lastIndexOf("\\") + 1);
			if("".equalsIgnoreCase(fileName))continue;
			//改名,使其在服務(wù)端名稱不沖突
			String newName=""+ISequenceId+(new java.util.Random().nextInt(1000000))+fileName.substring(fileName.lastIndexOf("."));
			
			
			Sfile_Name=fileName;
			Sfile_Size=""+item.getSize();
			//創(chuàng)建File對(duì)象,將上傳得文件保存
			File file = new File(FilePath, newName);

			InputStream in;
			try {
				in = item.getInputStream();//獲得輸入數(shù)據(jù)流文件
				//將該數(shù)據(jù)流寫入到指定文件中
				FileOutputStream out = new FileOutputStream(file);
				byte[] buffer = new byte[4096]; // To hold file contents
				int bytes_read;
				while ((bytes_read = in.read(buffer)) != -1) // Read until EOF
				{
					out.write(buffer, 0, bytes_read);
				}
				if (in != null)
					try {
						in.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				if (out != null)
					try {
						out.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			
			sqlFile=",'"+Sfile_Sort+"','"+Sfile_Name+"','"+newName+"','"+Sfile_Size+"','"+Sfile_Time+"','"+Surl_info+"'";
			item.delete();//內(nèi)存中刪除該數(shù)據(jù)流
			//組裝sql語(yǔ)句
			String sql=sqlFirst+sqlField+sqlFile+sqlEnd;
			//執(zhí)行sql語(yǔ)句
			sqlExcute(sql);	
		}	
	}
	
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {
		doPost(request, response);
	}

	private void doFileUpload(HttpSession session, HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		try {
			//創(chuàng)建UploadListener對(duì)象
			UploadListener listener = new UploadListener(request.getContentLength());
			listener.start();//啟動(dòng)監(jiān)聽(tīng)狀態(tài)
			//將監(jiān)聽(tīng)器對(duì)象的狀態(tài)保存在Session中
			session.setAttribute("FILE_UPLOAD_STATS", listener.getFileUploadStats());
			//創(chuàng)建MonitoredDiskFileItemFactory對(duì)象
			FileItemFactory factory = new MonitoredDiskFileItemFactory(listener);
			//通過(guò)該工廠對(duì)象創(chuàng)建ServletFileUpload對(duì)象
			ServletFileUpload upload = new ServletFileUpload(factory);
			
			//使用gb2312字符集
			//upload.setHeaderEncoding("gb2312");
			
			//將轉(zhuǎn)化請(qǐng)求保存到list對(duì)象中			
			List items = upload.parseRequest(request);
			//停止使用監(jiān)聽(tīng)器
			listener.done();
			boolean hasError = false;
			
			LinkedList field_item=new LinkedList(),file_item=new LinkedList();
			//循環(huán)list中的對(duì)象
			for (Iterator i = items.iterator(); i.hasNext();) {
				FileItem fitem = (FileItem) i.next();
				if (fitem.isFormField()) {//如果該FileItem是表單域			
					field_item.add(fitem);
				}else if (!fitem.isFormField()) {//如果該FileItem不是表單域
					file_item.add(fitem);
				}
			}
			processUploadedField(field_item);//調(diào)用processUploadedField方法,將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中
				
			
			processUploadedFile(file_item);//調(diào)用processUploadedFile方法,將數(shù)據(jù)保存到文件中
				

			if (!hasError) {//如果沒(méi)有出現(xiàn)錯(cuò)誤
				sendCompleteResponse(response, null);//調(diào)用sendCompleteResponse方法
			} else {
				sendCompleteResponse(response,
						"Could not process uploaded file. Please see log for details.");
			}
		} catch (Exception e) {
			sendCompleteResponse(response, "Error,please reload!");
			System.out.println(e.getMessage());
		}
	}

	private void doStatus(HttpSession session, HttpServletResponse response)
			throws IOException {
		// 設(shè)置該響應(yīng)不在緩存中讀取
		response.addHeader("Expires", "0");
		response.addHeader("Cache-Control",
				"no-store, no-cache, must-revalidate");
		response.addHeader("Cache-Control", "post-check=0, pre-check=0");
		response.addHeader("Pragma", "no-cache");
        //獲得保存在Session中的狀態(tài)信息
		UploadListener.FileUploadStats fileUploadStats = (UploadListener.FileUploadStats) session.getAttribute("FILE_UPLOAD_STATS");
		if (fileUploadStats != null) {
			long bytesProcessed = fileUploadStats.getBytesRead();//獲得已經(jīng)上傳的數(shù)據(jù)大小
			long sizeTotal = fileUploadStats.getTotalSize();//獲得上傳文件的總大小
			//計(jì)算上傳完成的百分比
			long percentComplete = (long) Math.floor(((double) bytesProcessed / (double) sizeTotal) * 100.0);
			//獲得上傳已用的時(shí)間
			long timeInSeconds = fileUploadStats.getElapsedTimeInSeconds();
			//計(jì)算平均上傳速率
			double uploadRate = bytesProcessed / (timeInSeconds + 0.00001);
			// 計(jì)算總共所需時(shí)間
			double estimatedRuntime = sizeTotal / (uploadRate + 0.00001);
            //將上傳狀態(tài)返回給客戶端
			response.getWriter().println("<b>Upload Status:</b><br/>");
			if (fileUploadStats.getBytesRead() != fileUploadStats.getTotalSize()) {
				response.getWriter().println(
						"<div class=\"prog-border\"><div class=\"prog-bar\" style=\"width: "
								+ percentComplete + "%;\"></div></div>");
				response.getWriter().println(
						"Uploaded: " + bytesProcessed + " out of " + sizeTotal
								+ " bytes (" + percentComplete + "%) "
								+ (long) Math.round(uploadRate / 1024)
								+ " Kbs <br/>");
				response.getWriter().println(
						"Runtime: " + formatTime(timeInSeconds) + " out of "
								+ formatTime(estimatedRuntime) + " "
								+ formatTime(estimatedRuntime - timeInSeconds)
								+ " remaining <br/>");
			} else {
				response.getWriter().println(
						"Uploaded: " + bytesProcessed + " out of " + sizeTotal
								+ " bytes<br/>");
				response.getWriter().println("Complete.<br/>");
			}
		}
        //如果文件已經(jīng)上傳完畢
		if (fileUploadStats != null&& fileUploadStats.getBytesRead() == fileUploadStats.getTotalSize()) {
			response.getWriter().println("<b>upfiles completed.</b>");
		}
	}

	private void sendCompleteResponse(HttpServletResponse response,
			String message) throws IOException {
		if (message == null) {
			response.getOutputStream().print("<html><head><script type='text/javascript'>function killUpdate() { window.parent.killUpdate(''); }</script></head><body onload='killUpdate()'></body></html>");
		} else {
			response.getOutputStream().print("<html><head><script type='text/javascript'>function killUpdate() { window.parent.killUpdate('"
									+ message+ "'); }</script></head><body onload='killUpdate()'></body></html>");
		}
	}

	private String formatTime(double timeInSeconds) {
		long seconds = (long) Math.floor(timeInSeconds);
		long minutes = (long) Math.floor(timeInSeconds / 60.0);
		long hours = (long) Math.floor(minutes / 60.0);

		if (hours != 0) {
			return hours + "hours " + (minutes % 60) + "minutes "
					+ (seconds % 60) + "seconds";
		} else if (minutes % 60 != 0) {
			return (minutes % 60) + "minutes " + (seconds % 60) + "seconds";
		} else {
			return (seconds % 60) + " seconds";
		}
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞av亚洲一区二区三| 日韩伦理av电影| 午夜激情综合网| 欧美精品乱人伦久久久久久| 日韩av在线发布| 精品成人一区二区三区四区| 国产一区二区三区黄视频| 久久精品欧美一区二区三区不卡 | 色综合色狠狠综合色| 中文字幕字幕中文在线中不卡视频| 91视频.com| 视频一区在线播放| 欧美成人精品3d动漫h| 国产99久久久国产精品免费看| 欧美经典一区二区| 色呦呦国产精品| 免费观看成人av| 国产精品系列在线| 欧美日韩在线三区| 国产伦精品一区二区三区在线观看| 国产无一区二区| 欧美性感一区二区三区| 麻豆精品视频在线| 国产精品久久久久久久久免费樱桃 | 韩国三级电影一区二区| 国产精品久久久一本精品| 91福利区一区二区三区| 久久机这里只有精品| 亚洲婷婷国产精品电影人久久| 91精品国产一区二区| 国产乱码一区二区三区| 亚洲激情中文1区| 久久精品视频一区二区三区| 欧美三级视频在线| 成人视屏免费看| 日本免费在线视频不卡一不卡二| 国产精品热久久久久夜色精品三区| 精品视频1区2区3区| 国产不卡免费视频| 日精品一区二区| 日韩伦理免费电影| 精品国产一区a| 欧美人与性动xxxx| av在线不卡免费看| 国产主播一区二区| 蜜臀av性久久久久蜜臀aⅴ| 中文字幕在线观看不卡视频| 欧美变态口味重另类| 欧美亚洲综合久久| 99精品偷自拍| 成人免费高清在线| 久久精品av麻豆的观看方式| 污片在线观看一区二区| 日韩久久一区二区| 中文乱码免费一区二区| 久久影视一区二区| 精品国产一区久久| 3751色影院一区二区三区| 日本电影欧美片| 色综合久久精品| a级高清视频欧美日韩| 国产精品小仙女| 韩国v欧美v亚洲v日本v| 麻豆精品视频在线观看视频| 婷婷综合在线观看| 亚洲国产精品久久人人爱蜜臀| 成人免费一区二区三区在线观看| 国产日韩v精品一区二区| 精品久久久久香蕉网| 欧美成人乱码一区二区三区| 欧美成人性战久久| 欧美电影免费观看高清完整版在| 91精品国产一区二区三区蜜臀| 欧美日韩国产在线观看| 欧美视频日韩视频| 欧美日韩一卡二卡三卡| 欧美自拍偷拍一区| 欧美日韩在线三级| 这里是久久伊人| 日韩精品最新网址| 精品国偷自产国产一区| 久久久99久久| 中文字幕在线播放不卡一区| 中文字幕一区二区三区不卡在线| 国产精品久久久久影院老司 | 欧美成人一区二区三区在线观看| 日韩色在线观看| 久久夜色精品一区| 久久精品夜色噜噜亚洲aⅴ| 国产视频一区二区在线| 国产精品视频线看| 亚洲美女免费在线| 午夜成人免费视频| 久久99久久久久| 成人夜色视频网站在线观看| 97久久久精品综合88久久| 欧美少妇bbb| 精品久久久久久久人人人人传媒 | 久久精品人人做人人爽人人| 国产精品嫩草久久久久| 亚洲乱码国产乱码精品精的特点 | 日本伦理一区二区| 欧美日韩国产一级片| 日韩免费视频线观看| 国产欧美日韩久久| 一个色综合av| 久久精品国产一区二区| 丁香五精品蜜臀久久久久99网站 | 久久精品国产在热久久| 岛国精品在线观看| 欧美亚洲动漫制服丝袜| 精品国产乱码久久| 亚洲人快播电影网| 麻豆精品视频在线观看免费| 不卡的看片网站| 884aa四虎影成人精品一区| 久久精品一区二区三区不卡| 亚洲最大的成人av| 国产精品一区在线| 欧美伊人久久久久久久久影院| 精品国产乱码久久久久久浪潮| 国产精品高潮久久久久无| 日本va欧美va欧美va精品| 国产69精品一区二区亚洲孕妇| 欧美日韩高清影院| 国产三级欧美三级日产三级99| 亚洲一区二区成人在线观看| 韩国在线一区二区| 欧美日韩国产天堂| 国产精品天天看| 久久国产欧美日韩精品| 日本韩国欧美一区二区三区| 久久伊人中文字幕| 天天综合日日夜夜精品| 成人精品亚洲人成在线| 日韩欧美一级精品久久| 亚洲综合久久久久| 丁香天五香天堂综合| 欧美一区二区二区| 亚洲综合在线视频| 99精品国产99久久久久久白柏| 337p日本欧洲亚洲大胆色噜噜| 亚洲无线码一区二区三区| 国产精品一二三四| 日韩一区二区在线看| 亚洲综合图片区| 99re在线精品| 国产精品久久久久久久久免费丝袜| 久久精品理论片| 日韩一区二区三区精品视频| 一区二区三区欧美亚洲| a在线欧美一区| 中文字幕电影一区| 国产电影一区在线| 久久久久久久性| 国产永久精品大片wwwapp | 国产精品99久久久久| 91精品国产aⅴ一区二区| 亚洲香肠在线观看| 色8久久精品久久久久久蜜| 国产精品久久久久久福利一牛影视| 韩国欧美国产一区| 精品国产一区久久| 国产在线观看一区二区| 久久综合av免费| 国产精品资源在线观看| 久久久精品人体av艺术| 国产精品一区二区无线| 国产欧美日韩另类一区| 成人开心网精品视频| 国产精品久久久久影院亚瑟| voyeur盗摄精品| 亚洲欧美日韩国产另类专区 | 欧美日韩激情在线| 五月天一区二区| 日韩欧美一级精品久久| 九一九一国产精品| 久久精品亚洲麻豆av一区二区 | 一区二区三区中文字幕在线观看| 91亚洲精品一区二区乱码| 中文字幕欧美一区| 一本到不卡免费一区二区| 亚洲精品成人天堂一二三| 欧美午夜片在线看| 日本视频免费一区| 精品久久久久久久久久久久久久久 | 偷拍一区二区三区四区| 欧美一区永久视频免费观看| 精品一区二区av| 国产精品网站导航| 在线看不卡av| 麻豆一区二区在线| 日本一区二区久久| 在线视频综合导航| 蜜桃久久av一区| 中文字幕第一区第二区| 一本到高清视频免费精品| 日本vs亚洲vs韩国一区三区二区 | 亚洲欧美视频在线观看视频| 欧美亚洲一区二区在线|