- 浏览: 1596994 次
- 性别:
文章分类
- 全部博客 (2929)
- 非技术 (18)
- Eclipse (11)
- JAVA (31)
- 正则表达式 (0)
- J2EE (4)
- DOS命令 (2)
- WEB前端 (52)
- JavaScript (69)
- 数据库 (8)
- 设计模式 (0)
- JFreechart (1)
- 操作系统 (1)
- 互联网 (10)
- EasyMock (1)
- jQuery (5)
- Struts2 (12)
- Spring (24)
- 浏览器 (16)
- OGNL (1)
- WebService (12)
- OSGi (14)
- 软件 (10)
- Tomcat (2)
- Ext (3)
- SiteMesh (2)
- 开源软件 (2)
- Hibernate (2)
- Quartz (6)
- iBatis (2)
最新评论
1.编写上传表单
...............................
<s:form name="f1" action="upload!add.htm" method="post" enctype="multipart/form-data">
<s:file name="upload"/><input type="submit" name="Submit" value="上传" />
</s:form>
................................
1.编写Action
package action.game.editor.windows;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class UploadAction extends ActionSupport {
private File upload;//与表单文件域Name属性相同
private String uploadContentType;//表单文件域Name+"ContentType"
private String uploadFileName;//表单文件域Name+"FileName"
private String savePath="/uploadFiles";//保存路径
private String allowTypes="image/pjpeg,image/gif,image/bmp,image/x-png";//允许的文件类型
private String getSavePath() throws Exception
{
return ServletActionContext.getRequest().getRealPath(savePath);
}
//上传文件对应文件内容的setter
public void setUpload(File upload)
{
this.upload = upload;
}
//上传文件的文件类型的setter
public void setUploadContentType(String uploadContentType)
{
this.uploadContentType = uploadContentType;
}
public String getUploadContentType() {
return uploadContentType;
}
//上传文件的文件名的setter
public void setUploadFileName(String uploadFileName)
{
this.uploadFileName = uploadFileName;
}
//得到随机文件名
private String generateFileName(String fileName) {
DateFormat format = new SimpleDateFormat("yyMMddHHmmss");
String formatDate = format.format(new Date());
int random = new Random().nextInt(10000);
int position = fileName.lastIndexOf(".");
String extension = fileName.substring(position);
return formatDate + random + extension;
}
public String execute(){
return SUCCESS;
}
//添加本地图片
public String addLocalIMG() throws Exception{
if(allowTypes.indexOf(uploadContentType)!=-1)
{
if(upload.length()<200000){
String realFileName=generateFileName(uploadFileName);
//以服务器的文件保存地址和原文件名建立上传文件输出流
FileOutputStream fos = new FileOutputStream(getSavePath() + "//" + realFileName);
//以上传文件建立一个文件上传流
FileInputStream fis = new FileInputStream(upload);
//将上传文件的内容写入服务器
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0)
{
fos.write(buffer , 0 , len);
}
fos.close();
fis.close();
//url=ServletActionContext.getRequest().getContextPath()+"/uploadFiles/"+realFileName; //读取图片网络地址
return SUCCESS;
}
else
return "sizeError";
}
else
return "typeError";
}
}
3.注意,最好在struts配置文件中修改最大上传文件大小,然后,在程序中再对文件大小做限制,并且这个限制的值不能大于struts配置文件中已经设置的最大值,单位为字节
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD
Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
<struts>
<include file="struts-default.xml"/>
<include file="struts-forward.xml"/>
<include file="struts-back.xml"/>
<constant name="struts.i18n.encoding" value="GBK"/>
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.configuration.xml.reload" value="true" />
<constant name="struts.multipart.maxSize" value="4000000" />
</struts>
注意,struts.multipart.maxSize默认为2M大小限制
发表评论
-
【SSI开发总结.2】spring整合ibatis
2009-08-20 15:48 6001.Spring 配置文件: ... -
【SSI开发总结.1】struts2整合spring
2009-08-20 15:48 671在Struts2中整合Spring的IoC支持是一件十分简单的 ... -
【SSI开发总结.5】SiteMesh装饰器
2009-08-20 15:49 646SiteMesh项目简介 OS(OpenSymph ... -
【SSI开发总结.4】Spring中使用Acegi安全框架
2009-08-20 15:49 684Acegi认证授权主要基于 ... -
【SSI开发总结.3】基于ibatis的自定义分页
2009-08-20 15:49 791分页,在web应用程序中非常常见的功能,也是最基本的功能, ... -
【SSI开发总结.7】Struts+Spring+Ibatis环境配置(二)
2009-08-20 15:50 608spring提供了ibatis的模板类封装,通过简单的设置就能 ... -
【SSI开发总结.6】Struts+Spring+Ibatis环境配置(一)
2009-08-20 15:50 755为了使struts2和spring集成,必须下载一个 ... -
【SSI开发总结.9】Struts2中的session用法
2009-08-20 15:53 640web.xml <?xml version=&qu ... -
Struts2 action的扩展名修改方法
2010-07-04 15:32 747STRUTS2 ACTION的扩展名默认为.action,在 ... -
Struts2在Action中获得Response对象的四种方法
2010-07-15 09:55 793【方法1】使用Struts2 Aware拦截器 这种 ... -
struts2采用convention-plugin实现零配置
2010-07-15 14:50 729最近开始关注struts2的新特性,从这个版本开始,Strut ...
相关推荐
SSi(Struts2+Spring+iBatis)三种框架的整合实现文件上传下载功能,很实用,支持多文件上传功能,对你的学习很有帮助,数据库导入就能实现功能
DWC_ssi_user.pdf
SSI框架集成实例(struts2,spring,ibats),数据库是SQL SERVER
struts2+spring+ibatis做的小程序
ssi项目实例,采用struts2.18、spring2.5、ibatis2.3实现
MyEclispse下SSI整合JAR包(Struts1+Spring3+ibatis2)
FPGA之SSI接口协议实现 fpga开发.pdf
struts2+ibatis2.x+spring2.5整合的一个demo 适合新手学习
OMAP SSI port driver.
使用Verilog 编程语言实现对11 bit 编码器SSI输出的读取
用于将SSI协议转换成RS232协议,因为带SSI协议处理能力的单片机几乎没有
服务器电源SSI标准收集.pdf
shtml网页SSI使用详解.pdf
SSI library, Logic gates verilog codes
struts2+spring+ibatis整合开发demo
SSI实例(源码+数据库+部署说明),数据库使用连接池,自己编写的搭建框架的代码,包含登录,增删改查,包含jar包: commons-dbcp.jar ibatis-2.3.0.677.jar mysql-connector-java-5.1.13.jar spring-aop-3.2.1....
SSI+Mina2(Struts2+Spring4+Mybatis3+Mina2)集成,都是最新的包, 发布就可运行,配置文件都写了详细的注释。
资源来自pypi官网。 资源全名:galileo-ssi-1.2.tar.gz
基于spring+struts2+ibatis开发的简单项目,里面有增加,修改,删除,查找功能,前台使用了ligerUI插件,需在jsp页面引用ligerUI的js文件,适合有一定jquery,java的初学者,并对ligerUI有一定的了解,否则将很难理解...
SSL证书卸载与SSI高级应用.pdf