先分析一下上傳文件的流程
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午夜精品|