首页>代码>jsp上传文件源码实例下载,支持配置多个文件上传,并有文件上传进度条>/cnUpload/src/www/xwcms/net/struts/action/UploadFileAction.java
/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package www.xwcms.net.struts.action; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.text.DecimalFormat; import java.util.Iterator; import java.util.List; import java.util.Random; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; /** * MyEclipse Struts * Creation date: 10-06-2013 * * XDoclet definition: * @struts.action parameter="method" validate="true" */ public class UploadFileAction extends DispatchAction { /** * 简介:上传附件 * 作者:www.xwcms.net * @throws UnsupportedEncodingException * */ @SuppressWarnings( { "deprecation", "unchecked" }) // 上传文件方法 前台调用 public ActionForward fileAdd(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException { response.setCharacterEncoding("UTF-8"); //防止返回文件名是乱码 request.setCharacterEncoding("UTF-8"); //获取前台页面数据 String sizeLimit = request.getParameter("sizeLimit");//限制图片上传大小值 boolean backValue=false; PrintWriter out = null; ThreadLocal<String> returnStr = new ThreadLocal<String>(); String extName = ""; // 保存文件拓展名 String newFileName = ""; // 保存新的文件名 String ranFileName = getRandomFileName(); // 保存随机文件名 String savePath = getAbsoluteBasePath(request); // 获取项目根路径 savePath = savePath + "/uploadFile/"; //上传保存文件的路径 File fa=new File(savePath); if(!fa.exists())//判断文件夹是否存在 { fa.mkdir(); } // 处理上传的文件 boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) { try { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload fileUpload = new ServletFileUpload(factory); // 设置文件大小(超过int 的范围会报错 注意 ) fileUpload.setSizeMax(1024 * 1024 * Long.parseLong(sizeLimit)); // 获得请求中的文件列表 List<FileItem> files = fileUpload.parseRequest(request); System.out.println(files.size()); // 获得迭代器 Iterator<FileItem> iterator = files.iterator(); while (iterator.hasNext()) { FileItem item = iterator.next(); if (!item.isFormField()) { String imgName = item.getName(); // 获得图片名称,此文件名包括路径 double fileSize = item.getSize(); double size = fileSize / 1024; DecimalFormat df = new DecimalFormat("########.00 "); String imgSize= df.format(size);//获取图片大小 if (imgName.lastIndexOf(".") >= 0) { extName = imgName.substring(imgName.lastIndexOf(".")); // 获得文件的扩展名 } System.out.println(imgName); returnStr.set(imgName); newFileName = ranFileName + extName; // 文件重新命名 File fileupload = new File(savePath + newFileName);// 生成抽象文件 item.write(fileupload); // 上传图片到uploadImg文件夹 /** * 这里可以将上传附件信息添加到数据 */ } } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } try { out = response.getWriter(); out.print("【"+returnStr.get()+"】" + "上传成功!"); out.flush(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; } /** * 获得项目的根路径 * @param request * @return */ private String getAbsoluteBasePath(HttpServletRequest request) { return request.getSession().getServletContext().getRealPath("/"); } /** * 生成随机文件名:当前年月日时分秒+五位随机数 * @return */ private String getRandomFileName() { //SimpleDateFormat sDateFormat; Random r = new Random(); int rannum = (int) (r.nextDouble() * (99999 - 10000 + 1)) + 10000; // 获取随机数 //sDateFormat = new SimpleDateFormat("yyyyMMdd"); // 时间格式化的格式 return rannum+""; // 当前时间 } }
最近下载更多
13856120525 LV1
2023年2月17日
yymmdm LV6
2022年8月30日
sl0018 LV13
2022年6月13日
Mayoubin2001 LV21
2022年3月26日
zhjwgs LV15
2022年2月22日
17798830 LV14
2022年1月25日
czr2233 LV9
2021年9月14日
huaua7676 LV30
2021年7月28日
明123456 LV11
2021年5月27日
dongzhan LV12
2021年3月3日
最近浏览更多
uni-code_0123 LV1
2023年11月29日
微信网友_6755417394941952
2023年11月28日
暂无贡献等级
13856120525 LV1
2023年2月17日
慵懒的小橘猫 LV11
2022年11月16日
8战魂5无双8 LV43
2022年9月13日
yymmdm LV6
2022年8月30日
sl0018 LV13
2022年6月12日
1635162218 LV9
2022年5月31日
qwer765 LV1
2022年5月11日
qwerasdf123456 LV2
2022年4月24日