日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

commons-fileupload-1.2.1实现文件上传

發(fā)布時間:2025/6/15 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 commons-fileupload-1.2.1实现文件上传 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
需導(dǎo)入commons-fileupload-1.2.1.jar和 commons-io-1.3.2.jarupload2.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>文件上傳</title></head><body><form action="FileUploadServlet" method="post"enctype="multipart/form-data"><input type="file" size="30" name="file01" /><br /><input type="file" size="30" name="file02" /><br /><input name="up" type="submit" value="上傳" /></form></body>




FileUploadServlet.javaimport java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List;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.FileUploadException; import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload;public class FileUploadServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {final long MAX_SIZE = 300 * 1024 * 1024;// 設(shè)置上傳文件最大值// 允許上傳的文件格式的列表final String[] allowedExt = new String[] { "jpg", "jpeg", "gif", "txt","doc", "mp3", "wma", "m4a", "rar", "zip" };response.setContentType("text/html");// 設(shè)置字符編碼為UTF-8, 統(tǒng)一編碼,處理出現(xiàn)亂碼問題response.setCharacterEncoding("UTF-8");// 實例化一個硬盤文件工廠,用來配置上傳組件ServletFileUploadDiskFileItemFactory dfif = new DiskFileItemFactory();dfif.setSizeThreshold(4096);// 設(shè)置上傳文件時用于臨時存放文件的內(nèi)存大小,這里是4K.多于的部分將臨時存在硬盤dfif.setRepository(new File(request.getRealPath("/")+ "ImagesUploadTemp"));// 設(shè)置存放臨時文件的目錄,web根目錄下的ImagesUploadTemp目錄// 用以上工廠實例化上傳組件ServletFileUpload sfu = new ServletFileUpload(dfif);// 設(shè)置最大上傳大小sfu.setSizeMax(MAX_SIZE);PrintWriter out = response.getWriter();// 從request得到所有上傳域的列表List fileList = null;try {fileList = sfu.parseRequest(request);} catch (FileUploadException e) {// 處理文件尺寸過大異常if (e instanceof SizeLimitExceededException) {out.println("文件尺寸超過規(guī)定大小:" + MAX_SIZE + "字節(jié)<p />");out.println("<a href=\"upload2.jsp\" target=\"_top\">返回</a>");return;}e.printStackTrace();}// 沒有文件上傳if (fileList == null || fileList.size() == 0) {out.println("請選擇上傳文件<p />");out.println("<a href=\"upload2.jsp\" target=\"_top\">返回</a>");return;}// 得到所有上傳的文件Iterator fileItr = fileList.iterator();// 循環(huán)處理所有文件while (fileItr.hasNext()) {FileItem fileItem = null;String path = null;long size = 0;// 得到當(dāng)前文件fileItem = (FileItem) fileItr.next();// 忽略簡單form字段而不是上傳域的文件域(<input type="text" />等)if (fileItem == null || fileItem.isFormField()) {continue;}// 得到文件的完整路徑path = fileItem.getName();// 得到文件的大小size = fileItem.getSize();if ("".equals(path) || size == 0) {out.println("請選擇上傳文件<p />");out.println("<a href=\"upload2.jsp\" target=\"_top\">返回</a>");return;}// 得到去除路徑的文件名String t_name = path.substring(path.lastIndexOf("\\") + 1); System.out.println(t_name);// 得到文件的擴(kuò)展名(無擴(kuò)展名時將得到全名)String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1);// 拒絕接受規(guī)定文件格式之外的文件類型int allowFlag = 0;int allowedExtCount = allowedExt.length;for (; allowFlag < allowedExtCount; allowFlag++) {if (allowedExt[allowFlag].equals(t_ext))break;}if (allowFlag == allowedExtCount) {out.println("請上傳以下類型的文件<p />");for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++)out.println("*." + allowedExt[allowFlag] + " ");out.println("<p /><a href=\"upload2.jsp\" target=\"_top\">返回</a>");return;}long now = System.currentTimeMillis();// 根據(jù)系統(tǒng)時間生成上傳后保存的文件名String prefix = String.valueOf(now);// 保存的最終文件完整路徑,保存在web根目錄下的ImagesUploaded目錄下String u_name = request.getRealPath("/") + "ImagesUploaded/"+ prefix + "." + t_ext;//String filename = prefix + "." + t_ext;//根據(jù)原文件名保存文件String filename=t_name;try {// 保存文件到C:\\upload目錄下fileItem.write(new File("D:\\upload\\" + filename)); System.out.println(filename);out.println("文件上傳成功. 已保存為: " + t_name+ " 文件大小: " + size + "字節(jié)<p />");out.println("<a href=\"upload2.jsp\" target=\"_top\">繼續(xù)上傳</a>");} catch (Exception e) {e.printStackTrace();}}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doGet(request, response);}} </html>基于fileupload文件批量上傳 http://www.docin.com/p-56626321.html

總結(jié)

以上是生活随笔為你收集整理的commons-fileupload-1.2.1实现文件上传的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。