Servlet文件上傳

步驟概括:

1.往項目裏添加jar包,分別爲(commons-fileupload-1.3.2.jar,commons-io-2.5.jar)。

2.設置數據庫中的表,數據類型(varchar)或(text),長度弄長點,因爲在這裏存放的是一個路徑(文件的路徑)。

3.設置表單,把input設置爲file類型,form標籤修改屬性爲enctype="multipart/form-data"(在使用包含文件上傳控件的表單時,必須使用該值)。

4.在servlet裏寫程序。

上傳表單,代碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>上傳文件</title>
</head>
<body>
<form method="post" action="/4-26/UploadServlet" enctype="multipart/form-data">
	選擇一個文件:
	<input type="file" name="uploadFile" />
	<br/><br/>
	<input type="submit" value="上傳" />
</form>
</body>
</html>

xml配置如下:

<servlet>
	<servlet-name>UploadServlet</servlet-name>
	<servlet-class>4-26.UploadServlet</servlet-class>
</servlet>

<servlet-mapping>
	<servlet-name>UploadServlet</servlet-name>
	<url-pattern>/UploadServlet</url-pattern>
</servlet-mapping>


在UploadServlet類中重寫doGet方法:

public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
    //獲取文件名
    String filename=request.getParameter("name");
    //設置Content-Disposition  
    response.setHeader("Content-Disposition", "attachment;filename="+filename);
    //獲取要下載的文件絕對路徑,我的文件都放到WebRoot/Upload目錄下
    ServletContext context=this.getServletContext();
    String fullFileName=context.getRealPath("/Upload/"+filename);
    //輸入流爲項目文件,輸出流指向瀏覽器
    InputStream is=new FileInputStream(fullFileName);
    ServletOutputStream os =response.getOutputStream();
    //關閉流
    is.close();
    os.close();
    
}



               

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章