亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JavaServlet的文件上傳和下載實現方法

2020-07-26 23:15:57
字體:
來源:轉載
供稿:網友

先分析一下上傳文件的流程

1-先通過前段頁面中的選擇文件選擇要上傳的圖片

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head>  <title>My JSP 'index.jsp' starting page</title>  <meta http-equiv="content-type" content="text/html;charset=utf-8">  <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page">    <script type="text/javascript" src="js/jquery.min.js"></script>  <script type="text/javascript" src="js/common.js"></script>  <script type="text/javascript" src="js/ajaxfileupload.js"></script> </head> <body>  <input type="file" value="上傳" name="inputImage" id="inputImage">  <input type="button" value="上傳" id="upload">    <a id="downLoad">下載</a> </body></html>

2-點擊提交按鈕,通過ajax的文件上傳訪問服務器端

common.js  

var path = (function() { //獲取當前網址 var curWwwPath = window.document.location.href; //獲取主機地址之后的目錄 var pathName = window.document.location.pathname; var pos = curWwwPath.indexOf(pathName); //獲取主機地址 var localhostPath = curWwwPath.substring(0, pos); //獲取帶"/"的項目名 var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1); return {   curWwwPath: curWwwPath,   pathName: pathName,   localhostPath: localhostPath,   projectName: projectName,   //部署路徑   deployPath: localhostPath + projectName  };})();
// 文件下載$("a[id=downLoad]").click(function(){ window.location.href=path.deployPath+"/fileDown";});// 文件上傳$("input[id=upload]").click(function() { $.ajaxFileUpload( {  url : path.deployPath + "/fileUp", // 處理頁面的絕對路徑  fileElementId : "inputImage", //file空間的id屬性  dataType : "json",  success : function(data) {   alert("上傳成功");  } });});

3-服務器端響應保存或者下載

保存上傳文件的FileUpload.java

import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import java.util.UUID;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import com.stu.util.HttpUtil;/** * 文件名稱: com.stu.fileupload.FileUpload.java<br/> * 初始作者: Administrator<br/> * 創建日期: 2018-1-31<br/> * 功能說明: 文件上傳 <br/> * =================================================<br/> * 修改記錄:<br/> * 修改作者 日期 修改內容<br/> * ================================================<br/> * Copyright (c) 2010-2011 .All rights reserved.<br/> */public class FileUpload extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {  // 獲取到當前服務器所在的路徑  String serverPath = req.getSession().getServletContext().getRealPath("/");  // 設置保存上傳文件的路徑  String saveDirPath = serverPath + "img";  File saveDirPathFileObj = new File(saveDirPath);  // 如果當用來存放文件的目錄不存在時,要創建該目錄  if (!saveDirPathFileObj.exists()) {   saveDirPathFileObj.mkdirs();  }  // 創建一個解析器工廠  DiskFileItemFactory factory = new DiskFileItemFactory();  // 設置工廠的緩存區大小  factory.setSizeThreshold(5 * 1024);  // 文件上傳的解析器(文件上傳對象)  ServletFileUpload upload = new ServletFileUpload(factory);  // 設置上傳文件的最大值  upload.setSizeMax(3 * 1024 * 1024);  // 設置編碼格式  upload.setHeaderEncoding("UTF-8");  try {   // 上傳以后的文件名   List<String> uploadFileNames = new ArrayList<String>();   List<FileItem> fileItems = upload.parseRequest(req);   System.out.println(fileItems);   for (FileItem file : fileItems) {    // 新的文件名    String saveFileName = UUID.randomUUID().toString().replace("-", "");    // 文件的后綴    String oldFileName = new String(file.getName().getBytes(),    "UTF-8");    System.out.println("oldFileName" + oldFileName);    String fileType = oldFileName.substring(oldFileName.lastIndexOf("."));    // 新的文件路徑    String saveFilePath = saveDirPath + File.separator    + saveFileName + fileType;    uploadFileNames.add(saveFileName + fileType);    // 保存上傳的文件    file.write(new File(saveFilePath));   }   System.out.println(uploadFileNames);   HttpUtil.setAttribute(req, "urls", uploadFileNames);   res.setContentType("application/json;charset=utf-8");   PrintWriter pw = res.getWriter();   pw.print(JSONArray.fromObject(uploadFileNames));  } catch (FileUploadException e) {   e.printStackTrace();  } catch (Exception e) {   e.printStackTrace();  } }}

下載文件的FileDownload.java

import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import java.util.UUID;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import com.stu.util.HttpUtil;/** * 文件名稱: com.stu.fileupload.FileUpload.java<br/> * 初始作者: Administrator<br/> * 創建日期: 2018-1-31<br/> * 功能說明: 文件上傳 <br/> * =================================================<br/> * 修改記錄:<br/> * 修改作者 日期 修改內容<br/> * ================================================<br/> * Copyright (c) 2010-2011 .All rights reserved.<br/> */public class FileUpload extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {  // 獲取到當前服務器所在的路徑  String serverPath = req.getSession().getServletContext().getRealPath("/");  // 設置保存上傳文件的路徑  String saveDirPath = serverPath + "img";  File saveDirPathFileObj = new File(saveDirPath);  // 如果當用來存放文件的目錄不存在時,要創建該目錄  if (!saveDirPathFileObj.exists()) {   saveDirPathFileObj.mkdirs();  }  // 創建一個解析器工廠  DiskFileItemFactory factory = new DiskFileItemFactory();  // 設置工廠的緩存區大小  factory.setSizeThreshold(5 * 1024);  // 文件上傳的解析器(文件上傳對象)  ServletFileUpload upload = new ServletFileUpload(factory);  // 設置上傳文件的最大值  upload.setSizeMax(3 * 1024 * 1024);  // 設置編碼格式  upload.setHeaderEncoding("UTF-8");  try {   // 上傳以后的文件名   List<String> uploadFileNames = new ArrayList<String>();   List<FileItem> fileItems = upload.parseRequest(req);   System.out.println(fileItems);   for (FileItem file : fileItems) {    // 新的文件名    String saveFileName = UUID.randomUUID().toString().replace("-", "");    // 文件的后綴    String oldFileName = new String(file.getName().getBytes(),    "UTF-8");    System.out.println("oldFileName" + oldFileName);    String fileType = oldFileName.substring(oldFileName.lastIndexOf("."));    // 新的文件路徑    String saveFilePath = saveDirPath + File.separator    + saveFileName + fileType;    uploadFileNames.add(saveFileName + fileType);    // 保存上傳的文件    file.write(new File(saveFilePath));   }   System.out.println(uploadFileNames);   HttpUtil.setAttribute(req, "urls", uploadFileNames);   res.setContentType("application/json;charset=utf-8");   PrintWriter pw = res.getWriter();   pw.print(JSONArray.fromObject(uploadFileNames));  } catch (FileUploadException e) {   e.printStackTrace();  } catch (Exception e) {   e.printStackTrace();  } }}

這里面用到了一個HttpUtil類,代碼如下:

import javax.servlet.FilterConfig;import javax.servlet.ServletConfig;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;/** * 文件名稱_com.niit.model2.util.Httputil.java</br> * 初始作逯ܿAdministrator</br> * 創建日期_2018-1-23</br> * 功能說明_這里用一句話描述這個類的作用--此句話需刪除 <br/> * =================================================<br/> * 修改記錄_br/> * 修改作亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

欧美日韩午夜激情| 日韩在线视频中文字幕| 上原亚衣av一区二区三区| 91精品免费看| 91视频-88av| 亚洲午夜久久久久久久| 精品人伦一区二区三区蜜桃免费| 久久99精品国产99久久6尤物| 欧美日韩国产黄| 欧美激情综合色综合啪啪五月| 亚洲色图偷窥自拍| 亚洲一区二区三区777| 亚洲白虎美女被爆操| 色综合久综合久久综合久鬼88| 91av在线播放| 国产98色在线| 亚洲一区亚洲二区亚洲三区| 亚洲视频日韩精品| 国产精品女人网站| 亚洲天堂成人在线视频| 国产精品电影网站| 91日本视频在线| 亚洲欧美国产日韩中文字幕| 色在人av网站天堂精品| 97超碰色婷婷| 欧美高清视频免费观看| 国产中文字幕亚洲| 成人久久精品视频| 亚洲另类图片色| 成人h视频在线观看播放| 2024亚洲男人天堂| 日韩免费观看视频| 欧美日韩精品在线视频| 国产精品久久久久久亚洲调教| 性欧美暴力猛交69hd| 久久国产精品影视| 成人激情av在线| 日韩av在线精品| 国产成人亚洲综合91| 蜜臀久久99精品久久久久久宅男| 国产精品av免费在线观看| 久久影视三级福利片| 欧美国产日韩二区| 亚洲在线视频福利| 亚洲丝袜一区在线| 欧美精品videosex极品1| 国产精品高潮呻吟久久av黑人| 国产成人精品免高潮在线观看| 欧美老女人性视频| 97av在线视频免费播放| 日韩电视剧在线观看免费网站| 国产噜噜噜噜久久久久久久久| 久久久久久久久久久久av| 国产精品网址在线| 亚洲成人久久久| 欧美性猛交xxxx乱大交蜜桃| 国产一区二区黑人欧美xxxx| 日韩黄色高清视频| 国产aⅴ夜夜欢一区二区三区| 日韩美女免费视频| 亚洲性无码av在线| 日韩av在线一区| 一本大道久久加勒比香蕉| 青草青草久热精品视频在线网站| 欧美一级视频免费在线观看| 国产精品偷伦免费视频观看的| 中文字幕欧美专区| 亚洲国产美女久久久久| 日韩在线视频观看| 成人黄色片网站| 日韩电影视频免费| 国产美女精彩久久| 久久伊人精品视频| 一区二区三区四区精品| 一二美女精品欧洲| 国产一区二区久久精品| 欧美亚洲成人网| 久久91亚洲精品中文字幕奶水| 国产精品h在线观看| 国产精品18久久久久久首页狼| 日韩视频在线观看免费| 色偷偷亚洲男人天堂| 韩国日本不卡在线| 日韩中文字幕在线免费观看| 亚洲男人天堂网| 亚洲free嫩bbb| 久久人人爽人人爽爽久久| 国产精品美女视频网站| 亚洲片在线观看| 精品动漫一区二区三区| 国产精品第10页| 亚洲天堂网在线观看| 国产97免费视| 欧美色道久久88综合亚洲精品| 91中文字幕一区| 欧美日韩国产限制| 91精品国产91久久久久久不卡| 久久噜噜噜精品国产亚洲综合| 国产精品成人一区二区三区吃奶| 国产精品白丝av嫩草影院| 久久久久久亚洲精品不卡| 亚洲一区二区中文| 欧美激情第三页| 久久亚洲欧美日韩精品专区| 色av中文字幕一区| 亚洲第一免费网站| 国产一区二区三区视频在线观看| 精品免费在线视频| 亚洲成人激情图| 久久精品这里热有精品| 91产国在线观看动作片喷水| 国产精品久久久久影院日本| 欧美日韩第一页| 久久精品国产一区二区三区| 91在线视频精品| 国产精品一区二区av影院萌芽| 国内精品美女av在线播放| 欧美激情一级二级| 久久精品免费电影| 国产精品青青在线观看爽香蕉| 国产精品久久久久久久午夜| 色视频www在线播放国产成人| 国产日韩精品综合网站| 日韩专区在线观看| 国产日本欧美一区二区三区在线| 日本成人精品在线| 欧美中文在线观看国产| 社区色欧美激情 | 国产亚洲精品美女久久久| 欧美精品第一页在线播放| 欧美一级电影在线| 欧美自拍大量在线观看| 亚洲成年人在线| 亚洲美女精品久久| 日韩在线视频线视频免费网站| 97热在线精品视频在线观看| 91精品国产色综合久久不卡98| 国产精品久久不能| 国产精品观看在线亚洲人成网| 伊人一区二区三区久久精品| 国产精品久久久久一区二区| 色播久久人人爽人人爽人人片视av| 中文字幕日韩av综合精品| 久久国产精品99国产精| 国产精品视频资源| 日韩av在线资源| 日韩经典中文字幕在线观看| 乱亲女秽乱长久久久| 欧美成人剧情片在线观看| 欧美精品一二区| 国产精品久久久久不卡| 中文字幕一区日韩电影| 国产日韩中文字幕在线| 国产精品入口日韩视频大尺度| 色av吧综合网| 久久综合亚洲社区| 国产精品美女久久| 国产精品日韩在线| 欧美激情精品久久久| 97精品国产97久久久久久免费| 亚洲欧美日韩国产成人| 青青青国产精品一区二区| 少妇高潮久久久久久潘金莲| 岛国av午夜精品|