- 浏览: 543189 次
- 性别:
- 来自: 湖南娄底
文章分类
- 全部博客 (252)
- C#资料 (0)
- java资料 (22)
- 数据库资料 (0)
- Java :开发中遇到的问题 (4)
- 书写属于我的人生 (6)
- spring (6)
- hibernate (16)
- struts (17)
- SSH (5)
- Linux操作系统 (1)
- Ext (5)
- Jquery (9)
- Tomcat部署出错 (2)
- xml (5)
- JSON (5)
- javascript 专题 (5)
- 开发环境配置 (2)
- web 开发 (27)
- Eclipse (7)
- Integration (1)
- 解决方案搜罗 (7)
- 网站收藏 (8)
- 测试框架 (1)
- iframe 专题 (6)
- JSTL (2)
- 各种插件收集 (2)
- 权限设计模型探讨 (1)
- DWR (1)
- log4j (3)
- java (11)
- java 格式化 (1)
- 软件工程 (2)
- 乱码专题 (1)
- UML (4)
- java 设计模式 篇 (1)
- 用法收集 (0)
- sourceforge apache solutions (2)
- Struts2 + JPA + Spring 开发 (1)
- 自定义工具箱 (0)
- IDE (4)
- opencms (1)
- jeecms (1)
- ant (0)
- maven (2)
- 数据库连接池 (0)
- spring MVC (0)
- android (1)
- web-server (1)
- iphone-开发环境 (1)
- iphone-软件开发 (6)
- iPhone-软件设计 (1)
- iphone-应用 (3)
- iPhone-设置 (2)
- iphone-软件开发-设计模式篇 (0)
- iphone-软件开发-OC基础 (9)
- iphone-软件开发- UI篇 (9)
- iphone-软件开发-工具类篇 (1)
- iphone-软件开发-第三方篇 (0)
- iphone-软件开发-特效篇 (2)
- iphone-软件开发-动画篇 (1)
- oracle (1)
- Java-Security (0)
- Three20 UI (1)
- IOS-HOW-TO-专题 (1)
- Mark-Develope Issues (1)
- iphone-软件开发- 资料参考篇 (1)
- C 语言-基本语法 (0)
- Java Servlet (2)
- Eclipse optimization (1)
- IOS Basic (0)
- ecl (0)
- FRONT-HTML (0)
- FRONT-JS (0)
- PHP (0)
最新评论
-
qq_29862421:
[[color=brown]color=yellow][url ...
java 上传图片同时获得图片的宽和高 -
hhb19900618:
NSString <==> NSNumber 之前 ...
OC 常用数据类型之间的转换 -
baohuan_love:
果然能解决问题,感谢分享
Tomcat Error Page配置 与 Error Page在IE下不能转发的问题 -
唐丽梅6313:
很细致。。
键盘样式风格有关设置-iOS开发 -
olived:
哥哥,为什么我的没有破解成功,总是提示许可文件丢失!!QQ:3 ...
[软件测试解决方案] soapUI 4.0.1破解方法
一。 web.xml文件
- <? xml version = "1.0" encoding = "UTF-8" ?>
- <!DOCTYPE web-app
- PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
- < web-app >
- < servlet >
- < servlet-name > actionServlet </ servlet-name >
- < servlet-class > org.apache.struts.action.ActionServlet </ servlet-class >
- < init-param >
- < param-name > config </ param-name >
- < param-value > /WEB-INF/struts-config.xml </ param-value >
- </ init-param >
- < init-param >
- < param-name > debug </ param-name >
- < param-value > 2 </ param-value >
- </ init-param >
- < load-on-startup > 0 </ load-on-startup >
- </ servlet >
- <!-- struts actionServlet mapping-->
- < servlet-mapping >
- < servlet-name > actionServlet </ servlet-name >
- < url-pattern > *.do </ url-pattern >
- </ servlet-mapping >
- <!-- welcome file list -->
- < welcome-file-list >
- < welcome-file > index.jsp </ welcome-file >
- </ welcome-file-list >
- <!-- error handle -->
- < error-page >
- < error-code > 404 </ error-code >
- < location > /error.jsp </ location >
- </ error-page >
- </ web-app >
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>actionServlet</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <!-- struts actionServlet mapping--> <servlet-mapping> <servlet-name>actionServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- welcome file list --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- error handle --> <error-page> <error-code>404</error-code> <location>/error.jsp</location> </error-page> </web-app>
二。 struts-config.xml文件
- <? xml version = "1.0" encoding = "ISO-8859-1" ?>
- <!DOCTYPE struts-config PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
- "http://struts.apache.org/dtds/struts-config_1_2.dtd" >
- < struts-config >
- <!-- form beans -->
- < form-beans >
- < form-bean name = "uploadForm" type = "org.apache.struts.action.DynaActionForm" >
- < form-property name = "type" type = "java.lang.String[]" />
- < form-property name = "name" type = "java.lang.String[]" />
- < form-property name = "file0" type = "org.apache.struts.upload.FormFile" />
- < form-property name = "file1" type = "org.apache.struts.upload.FormFile" />
- < form-property name = "file2" type = "org.apache.struts.upload.FormFile" />
- < form-property name = "file3" type = "org.apache.struts.upload.FormFile" />
- < form-property name = "file4" type = "org.apache.struts.upload.FormFile" />
- < form-property name = "file5" type = "org.apache.struts.upload.FormFile" />
- < form-property name = "file6" type = "org.apache.struts.upload.FormFile" />
- < form-property name = "file7" type = "org.apache.struts.upload.FormFile" />
- < form-property name = "file8" type = "org.apache.struts.upload.FormFile" />
- < form-property name = "file9" type = "org.apache.struts.upload.FormFile" />
- </ form-bean >
- </ form-beans >
- <!-- forward -->
- < global-forwards >
- < forward name = "successed" path = "/index.jsp" > </ forward >
- < forward name = "failed" path = "/error.jsp" > </ forward >
- </ global-forwards >
- <!-- action handle-->
- < action-mappings >
- < action path = "/uploaded" type = "com.fangchuang.action.UploadAction"
- name = "uploadForm" scope = "request" input = "/upload.jsp" >
- < forward name = "uploaded" path = "/upload.jsp" > </ forward >
- </ action >
- </ action-mappings >
- </ struts-config >
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <!-- form beans --> <form-beans> <form-bean name="uploadForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="type" type ="java.lang.String[]"/> <form-property name="name" type ="java.lang.String[]"/> <form-property name="file0" type ="org.apache.struts.upload.FormFile"/> <form-property name="file1" type ="org.apache.struts.upload.FormFile"/> <form-property name="file2" type ="org.apache.struts.upload.FormFile"/> <form-property name="file3" type ="org.apache.struts.upload.FormFile"/> <form-property name="file4" type ="org.apache.struts.upload.FormFile"/> <form-property name="file5" type ="org.apache.struts.upload.FormFile"/> <form-property name="file6" type ="org.apache.struts.upload.FormFile"/> <form-property name="file7" type ="org.apache.struts.upload.FormFile"/> <form-property name="file8" type ="org.apache.struts.upload.FormFile"/> <form-property name="file9" type ="org.apache.struts.upload.FormFile"/> </form-bean> </form-beans> <!-- forward --> <global-forwards> <forward name= "successed" path="/index.jsp"></forward> <forward name= "failed" path="/error.jsp"></forward> </global-forwards> <!-- action handle--> <action-mappings> <action path="/uploaded" type="com.fangchuang.action.UploadAction" name="uploadForm" scope="request" input="/upload.jsp"> <forward name="uploaded" path="/upload.jsp"></forward> </action> </action-mappings> </struts-config>
三。 upload.jsp文件
- < %@ page language = "java" import = "java.util.*" pageEncoding = "gb2312" errorPage = "error.jsp" % >
- < %@ taglib uri = "/WEB-INF/struts-html.tld" prefix = "html" % >
- < %@ taglib uri = "/WEB-INF/struts-bean.tld" prefix = "bean" % >
- < %@ taglib uri = "/WEB-INF/struts-logic.tld" prefix = "logic" % >
- < %@ taglib uri = "/WEB-INF/struts-tiles.tld" prefix = "title" % >
- <!-- 上传多个文件的jsp文件
- //可以随便转载,请保留出自http://www.javaresearch.org 作者anEngineer
- -- >
- < html >
- < head >
- < title > 上传多个文件的jsp文件 </ title >
- < 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 = "struts,多个文件,上传" >
- < meta http-equiv = "description" content = "This is a test" >
- </ head >
- < body >
- < html:form action = "uploaded.do" enctype = "multipart/form-data" method = "post" >
- < table border = "1" width = "80%" align = "center" >
- < tr bgColor =#62bcff >
- < td align = "left" > 文件类型 </ td >
- < td align = "left" > 文件描述 </ td >
- < td align = "left" > 文件名 </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value = "1" selected > 湖南省 </ option >
- < option value = "2" > 湖北省 </ option >
- < option value = "3" > 广东省 </ option >
- < option value = "4" > 北京市 </ option >
- < option value = "5" > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file0" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value ="1" selected > 湖南省 </ option >
- < option value = "2" > 湖北省 </ option >
- < option value = "3" > 广东省 </ option >
- < option value = "4" > 北京市 </ option >
- < option value = "5" > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file1" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value = "1" > 湖南省 </ option >
- < option value ="2" selected > 湖北省 </ option >
- < option value = "3" > 广东省 </ option >
- < option value = "4" > 北京市 </ option >
- < option value = "5" > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file2" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value = "1" > 湖南省 </ option >
- < option value ="2" selected > 湖北省 </ option >
- < option value = "3" > 广东省 </ option >
- < option value = "4" > 北京市 </ option >
- < option value = "5" > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file3" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value = "1" > 湖南省 </ option >
- < option value = "2" > 湖北省 </ option >
- < option value ="3" selected > 广东省 </ option >
- < option value = "4" > 北京市 </ option >
- < option value = "5" > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file4" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value = "1" > 湖南省 </ option >
- < option value = "2" > 湖北省 </ option >
- < option value ="3" selected > 广东省 </ option >
- < option value = "4" > 北京市 </ option >
- < option value = "5" > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file5" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value = "1" > 湖南省 </ option >
- < option value = "2" > 湖北省 </ option >
- < option value = "3" > 广东省 </ option >
- < option value ="4" selected > 北京市 </ option >
- < option value = "5" > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file6" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value = "1" > 湖南省 </ option >
- < option value = "2" > 湖北省 </ option >
- < option value = "3" > 广东省 </ option >
- < option value ="4" selected > 北京市 </ option >
- < option value = "5" > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file7" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value = "1" > 湖南省 </ option >
- < option value = "2" > 湖北省 </ option >
- < option value = "3" > 广东省 </ option >
- < option value = "4" > 北京市 </ option >
- < option value ="5" selected > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file8" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > < select name = "type" >
- < option value = "1" > 湖南省 </ option >
- < option value = "2" > 湖北省 </ option >
- < option value = "3" > 广东省 </ option >
- < option value = "4" > 北京市 </ option >
- < option value ="5" selected > 上海市 </ option >
- </ select > </ td >
- < td align = "left" > < input type = "text" name = "name" value = "" > </ td >
- < td align = "left" > < input type = "file" name = "file9" size = "35" value = "" >
- </ td >
- </ tr >
- < tr >
- < td align = "left" > </ td >
- < td align = "left" > </ td >
- < td align = "left" > < input type = "submit" value = "上传文件" value = "submit"
- onclick = "return(confirm('你确认要上传文件吗?'))" > </ td >
- </ tr >
- </ table >
- </ html:form >
- </ body >
- </ html >
<%@ page language="java" import="java.util.*" pageEncoding="gb2312" errorPage="error.jsp"%> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="title"%> <!-- 上传多个文件的jsp文件 //可以随便转载,请保留出自http://www.javaresearch.org 作者anEngineer --> <html> <head> <title>上传多个文件的jsp文件</title> <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="struts,多个文件,上传"> <meta http-equiv="description" content="This is a test"> </head> <body> <html:form action="uploaded.do" enctype="multipart/form-data" method="post"> <table border="1" width="80%" align="center"> <tr bgColor=#62bcff> <td align="left">文件类型</td> <td align="left">文件描述</td> <td align="left">文件名</td> </tr> <tr> <td align="left"><select name="type"> <option value="1" selected>湖南省</option> <option value="2">湖北省</option> <option value="3">广东省</option> <option value="4">北京市</option> <option value="5">上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file0" size="35" value=""> </td> </tr> <tr> <td align="left"><select name="type"> <option value="1"selected>湖南省</option> <option value="2">湖北省</option> <option value="3">广东省</option> <option value="4">北京市</option> <option value="5">上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file1" size="35" value=""> </td> </tr> <tr> <td align="left"><select name="type"> <option value="1">湖南省</option> <option value="2"selected>湖北省</option> <option value="3">广东省</option> <option value="4">北京市</option> <option value="5">上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file2" size="35" value=""> </td> </tr> <tr> <td align="left"><select name="type"> <option value="1">湖南省</option> <option value="2"selected>湖北省</option> <option value="3">广东省</option> <option value="4">北京市</option> <option value="5">上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file3" size="35" value=""> </td> </tr> <tr> <td align="left"><select name="type"> <option value="1">湖南省</option> <option value="2">湖北省</option> <option value="3"selected>广东省</option> <option value="4">北京市</option> <option value="5">上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file4" size="35" value=""> </td> </tr> <tr> <td align="left"><select name="type"> <option value="1">湖南省</option> <option value="2">湖北省</option> <option value="3"selected>广东省</option> <option value="4">北京市</option> <option value="5">上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file5" size="35" value=""> </td> </tr> <tr> <td align="left"><select name="type"> <option value="1">湖南省</option> <option value="2">湖北省</option> <option value="3">广东省</option> <option value="4"selected>北京市</option> <option value="5">上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file6" size="35" value=""> </td> </tr> <tr> <td align="left"><select name="type"> <option value="1">湖南省</option> <option value="2">湖北省</option> <option value="3">广东省</option> <option value="4"selected>北京市</option> <option value="5">上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file7" size="35" value=""> </td> </tr> <tr> <td align="left"><select name="type"> <option value="1">湖南省</option> <option value="2">湖北省</option> <option value="3">广东省</option> <option value="4">北京市</option> <option value="5"selected>上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file8" size="35" value=""> </td> </tr> <tr> <td align="left"><select name="type"> <option value="1">湖南省</option> <option value="2">湖北省</option> <option value="3">广东省</option> <option value="4">北京市</option> <option value="5"selected>上海市</option> </select></td> <td align="left"><input type="text" name="name" value=""></td> <td align="left"><input type="file" name="file9" size="35" value=""> </td> </tr> <tr> <td align="left"> </td> <td align="left"> </td> <td align="left"><input type="submit" value="上传文件" value="submit" onclick="return(confirm('你确认要上传文件吗?'))"></td> </tr> </table> </html:form> </body> </html>
四。 还有两个简单jsp文件index.jsp,error.jsp可以自己写。
五。 action文件
- package com.fangchuang.action;
- /**
- * @author anEngineer 处理上传文件action
- */
- public class UploadAction extends Action {
- public ActionForward execute(
- ActionMapping mapping,
- ActionForm form,
- HttpServletRequest request,
- HttpServletResponse response) {
- //可以随便转载,请保留出自http://www.javaresearch.org 作者anEngineer
- DynaActionForm fileForm = (DynaActionForm) form;
- String[] types = (String[]) fileForm.get( "type" );
- String[] names = (String[]) fileForm.get( "name" );
- FormFile file0 = (FormFile) fileForm.get( "file0" );
- FormFile file1 = (FormFile) fileForm.get( "file1" );
- FormFile file2 = (FormFile) fileForm.get( "file2" );
- FormFile file3 = (FormFile) fileForm.get( "file3" );
- FormFile file4 = (FormFile) fileForm.get( "file4" );
- FormFile file5 = (FormFile) fileForm.get( "file5" );
- FormFile file6 = (FormFile) fileForm.get( "file6" );
- FormFile file7 = (FormFile) fileForm.get( "file7" );
- FormFile file8 = (FormFile) fileForm.get( "file8" );
- FormFile file9 = (FormFile) fileForm.get( "file9" );
- Map<String, FormFile> fileMap = new HashMap<String, FormFile>();
- fileMap.put( "file0" + "*" + types[ 0 ] + "*" + names[ 0 ], file0);
- fileMap.put( "file1" + "*" + types[ 1 ] + "*" + names[ 1 ], file1);
- fileMap.put( "file2" + "*" + types[ 2 ] + "*" + names[ 2 ], file2);
- fileMap.put( "file3" + "*" + types[ 3 ] + "*" + names[ 3 ], file3);
- fileMap.put( "file4" + "*" + types[ 4 ] + "*" + names[ 4 ], file4);
- fileMap.put( "file5" + "*" + types[ 5 ] + "*" + names[ 5 ], file5);
- fileMap.put( "file6" + "*" + types[ 6 ] + "*" + names[ 6 ], file6);
- fileMap.put( "file7" + "*" + types[ 7 ] + "*" + names[ 7 ], file7);
- fileMap.put( "file8" + "*" + types[ 8 ] + "*" + names[ 8 ], file8);
- fileMap.put( "file9" + "*" + types[ 9 ] + "*" + names[ 9 ], file9);
- Set fileSet = fileMap.entrySet();
- Iterator iter = fileSet.iterator();
- // 取当前系统路径E:\Tomcat5\webapps\strutsUpload\ 其中strutsUpload为当前context
- String filePath = this .getServlet().getServletContext().getRealPath( "/" );
- // 保存文件的文件夹
- File savePath = new File(filePath + "UploadFiles\\" );
- filePath = filePath+ "UploadFiles\\" ;
- if (!savePath.exists()) {
- savePath.mkdir();
- }
- while (iter.hasNext()) {
- Map.Entry unit = (Map.Entry) iter.next();
- String key = (String) unit.getKey();
- FormFile file = (FormFile) unit.getValue();
- //文件大小符合要求,且是图片文件
- if ((file.getFileSize() >= 1 )&& DealPhoto.isPhoto(file)) {
- //图片类别
- String photoType = key.substring(key.indexOf( "*" ) + 1 , key
- .lastIndexOf( "*" ));
- //图片描述
- String photoName = key.substring(key.lastIndexOf( "*" ) + 1 , key
- .length());
- //存数据库操作,在数据库中保存文件的名称,类型,及在服务器上的相对路径
- //
- //判断是否重名
- if (DealPhoto.isFileExist(file.getFileName(),filePath))
- DealPhoto.rename(file.getFileName(),filePath);
- try {
- InputStream stream = file.getInputStream(); // 把文件读入
- // 建立一个上传文件的输出流
- OutputStream bos = new FileOutputStream(filePath+file.getFileName());
- int bytesRead = 0 ;
- byte [] buffer = new byte [ 8192 ];
- while ((bytesRead = stream.read(buffer, 0 , 8192 )) != - 1 ) {
- bos.write(buffer, 0 , bytesRead); // 将文件写入服务器
- }
- bos.close();
- stream.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- return mapping.findForward( "uploaded" );
- //还有其他可以改正的地方,如错误信息提示,把照片处理函数放到一个公用类,写文件操作等
- //可以随便转载,请保留出自http://www.javaresearch.org 作者anEngineer
- }
- }
package com.fangchuang.action; /** * @author anEngineer 处理上传文件action */ public class UploadAction extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { //可以随便转载,请保留出自http://www.javaresearch.org 作者anEngineer DynaActionForm fileForm = (DynaActionForm) form; String[] types = (String[]) fileForm.get("type"); String[] names = (String[]) fileForm.get("name"); FormFile file0 = (FormFile) fileForm.get("file0"); FormFile file1 = (FormFile) fileForm.get("file1"); FormFile file2 = (FormFile) fileForm.get("file2"); FormFile file3 = (FormFile) fileForm.get("file3"); FormFile file4 = (FormFile) fileForm.get("file4"); FormFile file5 = (FormFile) fileForm.get("file5"); FormFile file6 = (FormFile) fileForm.get("file6"); FormFile file7 = (FormFile) fileForm.get("file7"); FormFile file8 = (FormFile) fileForm.get("file8"); FormFile file9 = (FormFile) fileForm.get("file9"); Map<String, FormFile> fileMap = new HashMap<String, FormFile>(); fileMap.put("file0" + "*" + types[0] + "*" + names[0], file0); fileMap.put("file1" + "*" + types[1] + "*" + names[1], file1); fileMap.put("file2" + "*" + types[2] + "*" + names[2], file2); fileMap.put("file3" + "*" + types[3] + "*" + names[3], file3); fileMap.put("file4" + "*" + types[4] + "*" + names[4], file4); fileMap.put("file5" + "*" + types[5] + "*" + names[5], file5); fileMap.put("file6" + "*" + types[6] + "*" + names[6], file6); fileMap.put("file7" + "*" + types[7] + "*" + names[7], file7); fileMap.put("file8" + "*" + types[8] + "*" + names[8], file8); fileMap.put("file9" + "*" + types[9] + "*" + names[9], file9); Set fileSet = fileMap.entrySet(); Iterator iter = fileSet.iterator(); // 取当前系统路径E:\Tomcat5\webapps\strutsUpload\ 其中strutsUpload为当前context String filePath = this.getServlet().getServletContext().getRealPath("/"); // 保存文件的文件夹 File savePath = new File(filePath + "UploadFiles\\"); filePath = filePath+ "UploadFiles\\"; if (!savePath.exists()) { savePath.mkdir(); } while (iter.hasNext()) { Map.Entry unit = (Map.Entry) iter.next(); String key = (String) unit.getKey(); FormFile file = (FormFile) unit.getValue(); //文件大小符合要求,且是图片文件 if ((file.getFileSize() >= 1)&& DealPhoto.isPhoto(file)) { //图片类别 String photoType = key.substring(key.indexOf("*") + 1, key .lastIndexOf("*")); //图片描述 String photoName = key.substring(key.lastIndexOf("*") + 1, key .length()); //存数据库操作,在数据库中保存文件的名称,类型,及在服务器上的相对路径 // //判断是否重名 if(DealPhoto.isFileExist(file.getFileName(),filePath)) DealPhoto.rename(file.getFileName(),filePath); try { InputStream stream = file.getInputStream();// 把文件读入 // 建立一个上传文件的输出流 OutputStream bos = new FileOutputStream(filePath+file.getFileName()); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) { bos.write(buffer, 0, bytesRead);// 将文件写入服务器 } bos.close(); stream.close(); } catch (Exception e) { e.printStackTrace(); } } } return mapping.findForward("uploaded"); //还有其他可以改正的地方,如错误信息提示,把照片处理函数放到一个公用类,写文件操作等 //可以随便转载,请保留出自http://www.javaresearch.org 作者anEngineer } }
六。 照片处理类文件
- package com.fangchuang.run;
- /**
- * 图片处理
- * @author anEngineer
- *
- */
- public class DealPhoto {
- /**
- * 判断照片类型 .jpg .png .gif 目前只支持这三种格式
- * @param file
- * @return
- */
- public static boolean isPhoto(FormFile file) {
- String fileName = getString(file.getFileName());
- if (fileName.equals( "" ))
- return false ;
- if ((fileName.toLowerCase().endsWith( ".jpg" ))
- || (fileName.toLowerCase().endsWith( ".gif" ))
- || (fileName.toLowerCase().endsWith( ".png" )))
- return true ;
- else
- return false ;
- }
- /**
- *
- * @param str
- * @return
- */
- public static String getString(String str) {
- if (str == null )
- str = "" ;
- if (str.equals( "null" ))
- str = "" ;
- str = str.trim();
- return str;
- }
- /**
- * 判断文件是否存在
- * @param fileName
- * @param dir
- * @return
- */
- public static boolean isFileExist(String fileName, String dir) {
- File files = new File(dir + fileName);
- return (files.exists()) ? true : false ;
- }
- /**
- * 重命名
- * @param fileName
- * @param dir
- */
- public static void rename(String fileName, String dir) {
- String extendFile = "" ;
- if (isJpg(fileName))
- extendFile = ".jpg" ;
- else if (isGif(fileName))
- extendFile = ".gif" ;
- else if (isPng(fileName))
- extendFile = ".png" ;
- else
- extendFile = ".jpg" ;
- Random random = new Random();
- int add = random.nextInt( 10000 );
- String ret = fileName + add + extendFile;
- while (isFileExist(ret, dir)) {
- add = random.nextInt( 10000 );
- ret = fileName + add + extendFile;
- }
- File file = new File(dir + fileName);
- File reFile = new File(dir + ret);
- file.renameTo(reFile);
- }
- public static boolean isGif(String file) {
- if (file.toLowerCase().endsWith( ".gif" )) {
- return true ;
- } else {
- return false ;
- }
- }
- public static boolean isJpg(String file) {
- if (file.toLowerCase().endsWith( ".jpg" )) {
- return true ;
- } else {
- return false ;
- }
- }
- public static boolean isPng(String file) {
- if (file.toLowerCase().endsWith( ".png" )) {
- return true ;
- } else {
- return false ;
- }
- }
-
}
发表评论
-
Struts1.x 国际化
2012-11-15 13:47 0对于一个面向全球的 Web应用程序,按着不同国家的要求显示相 ... -
struts2 convention配置中常见配置选项及说明
2012-08-20 12:47 2330?xml version="1.0" en ... -
研磨Struts2 之 第十三章 国际化
2012-06-20 18:42 1336视频配套PPT,视频地址【 研磨Struts2视频课程 】 ... -
struts2:零配置 之 21.2 约定大于配置
2012-06-19 14:38 640121.2 约定大于配置 21.2.1 ... -
使用struts2中的codebehind插件
2012-06-17 17:21 1301使用struts2中的codebehind ... -
struts2 WARN OgnlValueStack:49 - Error setting expression
2012-02-23 15:53 0今天我遇到下面这样的异常: WARN OgnlValueSt ... -
struts2日期类型转换【转载】
2012-02-10 15:41 912在Struts2中,一般的内置类型都会在由系统自动进行转 ... -
struts2注解
2011-12-19 22:04 2890一、配置web.xml <filt ... -
Struts2 文件上传 之 文件类型 allowedTypes
2011-12-19 21:59 5639Html代码 '.a' : 'a ... -
struts 2支持注解jar包收藏
2011-12-19 21:50 1256附件:struts2-conversion-plugin-2. ... -
为Struts 2应用程序创建进度条(等待页面)
2011-12-17 21:08 1058Struts 2模拟进度条的原理 对于一些需要较 ... -
struts 2 学习曲线
2011-11-17 12:48 960<说明:以后有待整理 ... -
struts2的struts.properties配置文件详解
2011-11-15 22:45 861【IT168 技术文档】 struts.acti ... -
struts2中几种获得request,session等对象的方法
2011-11-15 22:44 11671、通过ActionContext来获得举例代码如下: ... -
在struts1.2中使用拦截器
2011-08-31 20:41 1081要在struts1.2中使用拦截器,必须使用到以下三个包: ... -
struts1 validator验证框架
2011-07-24 19:49 1422struts1 validator验证框架 ... -
html:cancel按钮的作用,cancel按钮,取消按钮
2011-07-24 16:39 1026struts判断标签 html:cancel html ... -
struts通过javascript使按钮变灰为不可用,灰色按钮
2011-07-24 11:23 2059struts页面用javascript来实现使按钮的变灰 ...
相关推荐
在"struts2上传例子"中,我们将深入探讨Struts2如何处理文件上传功能,同时解决可能出现的编码问题以及实现中文国际化。 首先,让我们来看看文件上传的基本概念。在Web应用中,用户可能需要上传图片、文档等文件,...
以上只是Struts2框架的部分关键知识点,实际的“Struts2例子大全”可能包括更多实战案例,例如登录注册、文件上传下载、AJAX交互、国际化、异常处理等。通过这些例子,开发者可以更深入地理解Struts2的使用方式,...
拦截器链是由多个拦截器按照指定顺序组成的,每个拦截器都可以在执行动作之前或之后进行操作。 2. **拦截器的作用**: - 提供了AOP(面向切面编程)的能力,可以在不修改原有代码的情况下扩展和增强功能。 - 诸如...
此外,Struts2还提供了丰富的插件支持,如Ajax、Tiles、i18n(国际化)、上传下载等功能,以及与Spring、Hibernate等其他框架的集成。 这个压缩包文件中的"struts2"可能包含了上述提到的jar包、示例代码、配置文件...
学习Struts的前提 ...第一个Struts例子 Struts常用的标签 Struts的Action Struts的Result Struts的表单 Struts拦截器 国际化(i18n)的实现 Struts的文件上传 上传应用:学生多媒体信息管理 OGNL的应用
### Struts2标签详解及具体实例解析 #### 一、概述 Struts2是一个基于MVC模式的开源框架,它提供了丰富的标签库来简化Web应用的开发过程。这些标签不仅功能强大,而且易于使用,可以帮助开发者快速构建动态网页。...
Struts2支持多语言环境,通过资源包(properties文件)来管理不同语言的文本。开发者可以创建不同的locale版本,根据用户浏览器设置或手动选择切换语言。 **5. API文档** Struts2提供了丰富的API供开发者使用,...
8. **国际化(Internationalization, i18n)**:Struts2支持多语言环境,提供了一种方便的方式来实现应用程序的国际化。我们可能会在这个实例中看到如何创建资源文件并使用它们来显示不同语言的文本。 9. **插件与...
在`struts.xml`配置文件中,你可以定义一个或多个包(`package`),每个包可以有多个Action配置。例如: ```xml <struts> <package name="struts2" extends="struts-default" namespace="/"> ...
它可以有多个,用于定义不同的Action类及其对应的URL映射,以及拦截器的配置。通过这个文件,开发者可以精确控制用户请求如何被处理。 3. **Struts 2 过滤器**:`FilterDispatcher`是Struts 2的核心过滤器,它负责...
- **文件上传下载**:Struts2提供文件上传和下载的支持,通过Action处理文件流,实现文件交互功能。 - **Ajax异步请求**:结合jQuery或其他JavaScript库,利用Struts2的Ajax插件实现页面的异步更新。 **4. 进阶话题...
在Web应用的`web.xml`配置文件中,我们需要定义一个过滤器,并将其关联到Struts2的Action请求。过滤器的配置包括: - 定义过滤器类:通常实现`javax.servlet.Filter`接口。 - 配置过滤器映射,将过滤器应用于所有...
- **3.8 Struts简单例子的分析(含代码注释和配置文件说明)** - 提供了一个简单的Struts示例,并对其代码和配置文件进行了详细解释。 - **3.9 本章小结** #### 第4章 配置Struts组件 - **4.1 Web应用部署描述符*...
3. **拦截器栈**: 使用`<interceptor-stack>`标签定义拦截器栈,它可以包含多个`<interceptor-ref>`标签,用于引用已定义的拦截器,并定义它们的执行顺序。 4. **引用拦截器**: 在`<action>`标签内,使用`...
例如,下面的配置定义了一个名为"Login"的Action,它有多个处理结果: ```xml <package name="default" extends="struts-default"> <result name="input">/login.jsp ...
此外,Struts2还提供了强大的国际化(i18n)、文件上传下载、Ajax支持等功能。例如,`struts2-convention-plugin`插件可以简化配置,自动将Action类和方法映射到URL。 在"test2"子文件中,可能包含Action类、对应的...
- **组装ActionForm**:介绍了如何将多个表单字段组合成一个ActionForm对象。 - **Struts的动态表单的应用**:展示了如何利用Struts的动态表单特性来构建灵活的用户界面。 #### Struts的执行 - **理解ActionForward...