古詩詞大全網 - 成語查詢 - jsp+servlet實現文件上傳與下載源碼

jsp+servlet實現文件上傳與下載源碼

上傳:

需要導入兩個包:commons-fileupload-1.2.1.jar,commons-io-1.4.jar

import java.io.File;

import java.io.IOException;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.mons.fileupload.FileItem;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

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

/**

* 上傳附件

* @author new

*

*/

public class UploadAnnexServlet extends HttpServlet {

private static String path = "";

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

/*

* post處理

* (non-Javadoc)

* @see javax.servlet..URLEncoder;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* 下載文件

* @author

*

*/

public class DownloadFilesServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 8594448765428224944L;

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

/*

* 處理請求

* (non-Javadoc)

* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)

*/

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String name = request.getParameter("fileName");

System.out.print("dddddddddd:" + name);

// web絕對路徑

String path = request.getSession().getServletContext().getRealPath("/");

String savePath = path + "upload";

// 設置為下載application/x-download

response.setContentType("application/x-download");

// 即將下載的文件在服務器上的絕對路徑

String filenamedownload = savePath + "/" + name;

// 下載文件時顯示的文件保存名稱

String filenamedisplay = name;

// 中文編碼轉換

filenamedisplay = URLEncoder.encode(filenamedisplay, "UTF-8");

response.addHeader("Content-Disposition", "attachment;filename="

+ filenamedisplay);

try {

java.io.OutputStream os = response.getOutputStream();

java.io.FileInputStream fis = new java.io.FileInputStream(

filenamedownload);

byte[] b = new byte[1024];

int i = 0;

while ((i = fis.read(b)) > 0) {

os.write(b, 0, i);

}

fis.close();

os.flush();

os.close();

} catch (Exception e) {

}

}

}