准备:导入commons-io-2.0.1.jar和commons-fileupload-1.2.1.jar,版本可以不一样 前台: <struts:form action="weiboAction!uploadPicture.shtml" enctype="multipart/form-data" namespace="/" method="post"> <struts:file name="image" label="文件"></struts:file> <struts:submit value="上传"/> </struts:form> 后台: /** * 作者:刘鹏 * 时间:2013-07-07 * 描述:微博列表中的图片和文件上传显示 * @return */ /*****************以下为上传部分*******************************/ private File image; //得到上传的文件 private String imageFileName; //得到文件的名称,写法是固定的 private String imageContentType; //得到文件的类型 public String getImageContentType() { return imageContentType; } public void setImageContentType(String imageContentType) { this.imageContentType = imageContentType; } public String getImageFileName() { return imageFileName; } public void setImageFileName(String imageFileName) { this.imageFileName = imageFileName; } public File getImage() { return image; } public void setImage(File image) { this.image = image; } public String addUI(){ return SUCCESS; } public String uploadPicture(){ HttpServletRequest request = ServletActionContext.getRequest(); //保存到根目录下的Images文件夹下 String realPath = ServletActionContext.getServletContext().getRealPath("/uploadOImages"); //取得真实路径 System.out.println(realPath); System.out.println(imageFileName); System.out.println(imageContentType); //自动命名 Random random = new Random(99999); int tempInt = random.nextInt(); Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmss"); int last = imageFileName.lastIndexOf("."); String head = imageFileName.substring(0,last); String type = imageFileName.substring(last); imageFileName = simpleDateFormat.format(date) + tempInt + type; System.out.println("新的文件名称是:"+imageFileName); //创建父文件夹 if(image!=null){ File saveFile = new File(new File(realPath), imageFileName); if(!saveFile.getParentFile().exists()){ //如果Images文件夹不存在 saveFile.getParentFile().mkdirs(); //则创建新的多级文件夹 } try { FileUtils.copyFile(image, saveFile); //保存文件 ActionContext.getContext().put("message", "上传成功!"); request.setAttribute("uploadsuccess", imageFileName); } catch (IOException e) { e.printStackTrace(); } } return "upload"; } /*****************以上为上传部分*******************************/ 后台将图片的地址保存到数据库中 //先从数据库中将所有数据读出来,放入到request中 request.setAttribute("weibotest", list); 前台使用OGNL语言读取出图片地址,并且显示图片 <s:iterator value="#request.weibotest" var="user"> <s:property value="#user.getContent()"/> <img src ='<s:property value ="#user.getImage()" />' width="200"> //显示图片 </s:iterator>
struts2文件和图片上传代码,很强大的工具类
最新推荐文章于 2019-07-11 20:52:33 发布