亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

一個人做項目的感受-Commons FileUpload文件上傳

系統 1558 0

?? ?到現在才真正體會到一個人做項目的感受,我說的不是一個人做著玩的。在一個公司里給他們做項目管理軟件(他們的項目不是軟件項目哦)。

?? ?我一個人充當了好多人的角色,我也不認為到現在為止我的水平有多高,但是我現在確實是充當軟件架構師的角色。項目到現在做了有兩個多月了,在這個過程中出現了不少系統框架上的問題還有數據庫設計的不完善造成的一系列問題。從一開始就沒有做完整的需求分析,因為那個時候他們也不是很清楚要做一個什么樣的東西出來,需求都很模糊。只是一個大概的構想,我但是就想了要把他們這種構想轉化為需求的話也就等于是空想。所以只能是走一步說一步。需求是一步一步在變,我好像也是一步一步在改,改東西是最煩人的事情。

?? ?不寫了,下班,明天繼續。

?? ?接著昨天的寫,昏昏沉沉的有敲了一天的代碼

?? ?前些天做了有關 文件上傳 的一些東西,現在把它貼出來

用的是Apache的Commons FileUpload組建

?? ?首先是要把需要的jar包放到WEB-INF的lib目錄下,需要的jar包全部在附件里,沒有的可以去下載

jsp文件:

    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>My JSP 'upload.jsp' starting page</title>
		<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	</head>
	<body>

		<form action="UploadServlet" method="post" enctype="multipart/form-data">
			<table border="1" align="center">
				<caption>
					請選擇要上傳的文件
				</caption>
				<tr>
					<td>
						上傳人
					</td>
					<td>
						<input type="text" name="name">
					</td>
				</tr>
								<tr>
					<td>
						上傳文件
					</td>
					<td>
						<input type="file"  name="file1name">
						<input type="file"  name="file1name">
					</td>
				</tr>
								<tr>
					<td>
						<input type="submit" name="submit" value="上傳" >
					</td>
					<td>
						<input type="reset" name="rest" value="重置">
					</td>
				</tr>
			</table>
		</form>
	</body>
</html>

  

?

  

? UploadServlet.java

?

    package com.xiang;

import java.io.IOException;
import java.io.*;
import java.util.*;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadServlet extends HttpServlet {
	private ServletContext app;

	private String savePath;

	public void init(ServletConfig conf) {
		savePath = conf.getInitParameter("savePath");
		app = conf.getServletContext();// 獲取servlet上下文,init方法只執行一次;
	}

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

		response.setContentType("text/html;charset=GBK");
		PrintWriter out = response.getWriter();
		request.setCharacterEncoding("GBK");

		DiskFileItemFactory dif = new DiskFileItemFactory();

		ServletFileUpload load = new ServletFileUpload(dif);
		try {
			//工程必須得有commons-io-1.4.jar,不然這個位置會報錯
			List items = load.parseRequest(request);// 解析reqeust,包括所傳過來的參數,文件等等吧,總之請求過來的所有東西都在這里放著呢

			Iterator it = items.iterator();// 既然items里包含了很多東西,那么我們需要取出每一個看看都是什么東西,主要區分input類型是text還是file
			while (it.hasNext()) {
				FileItem item = (FileItem) it.next();// 取出items里每一個元素,item即可是普通的文本信息,又可以是所上傳的文件

				if (item.isFormField()) {// 如果此方法返回真,說明就是普通的文本信息,相反就是文件啦
					// 如果是普通文本信息,簡單處理, 輸出信息
					System.out.println("表單參數的名字" + item.getFieldName()
							+ "<br/>" + "表單參數的值" + item.getString("GBK"));

				} else {
					// 上傳文件
					// 判斷用戶是否選擇的上傳文件
					if (item.getName() != null && !item.getName().equals("")) {

						System.out.println("上傳文件的大小" + item.getSize());
						System.out.println("上傳文件的類型" + item.getContentType());
						System.out.println("上傳文件的名稱" + item.getName());// 此處獲得的名字,是客戶端所選擇的文件的路徑和文件名,而我們往服務器保存時,要從新指定服務器端的路徑

						File tempFile = new File(item.getName());// 臨時性的,目的調用它的tempFile.getName()方法,僅僅獲取所上傳文件的名字而不要路徑

						System.out.println("文件名字:" + tempFile.getName());
						// app.getRealPath("/");
						System.out.println("當前工程的絕對路徑:" + app.getRealPath("/"));
						// 從新獲取file,而此file才是真正的所要上傳的
						File file = new File(app.getRealPath("/") + savePath,
								tempFile.getName());// 注意新file的構建,逗號前邊是路徑,后面是文件名

						item.write(file);
						System.out.println("上傳成功");
					}

				}

			}

		} catch (Exception e) {
			e.printStackTrace();
		}

	}


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

}

  

?

?

?

?不要忘記在web.xml里田間配置

    <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>UploadServlet</servlet-name>
    <servlet-class>com.accp.UploadServlet</servlet-class>
    <init-param>
    <param-name>savePath</param-name>
    <param-value>uploads</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>UploadServlet</servlet-name>
    <url-pattern>/UploadServlet</url-pattern>
  </servlet-mapping>
  

?

?大功告成

一個人做項目的感受-Commons FileUpload文件上傳


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 高h粗大强行撑开紧窄的嫩缝 | 精品在线小视频 | 动漫精品一区二区3d | 国产免费播放一区二区三区 | 中文字幕亚洲第一 | 久久久久伊人 | 在线观看91精品国产不卡免费 | 国产99青草全福视在线 | 国产精品福利视频主播真会玩 | 黄色毛片大全 | 老司机免费福利视频无毒午夜 | 婷婷色香五月激情综合2020 | www色网站| 免费刺激性视频大片区 | 免费在线观看福利 | 亚洲国产精品aa在线看 | 日韩欧美黄色大片 | 在线观看精品国内福利视频 | 免费观看一级欧美在线视频 | 香蕉视频黄色片 | 免费国产不卡午夜福在线 | 日日拍夜夜操 | 在线97 | 香蕉在线网站 | 久久这里只精品热免费99 | 国内精自线一二区 | 日韩免费大片 | 亚洲国产精品久久婷婷 | 精品动漫一区二区三区 | 日本一级爰免费视频 | 99精品免费视频 | 青青热在线观看视频精品 | 国产精品不卡在线 | 高清欧美一级在线观看 | 色伊人久久 | 欧美高清一区二区 | 午夜在线 | 香蕉在线视频观看 | 日韩精品福利视频一区二区三区 | 久草手机视频在线 | 久草在在线 |