`
入云涛
  • 浏览: 155949 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

struts2 和 commons-fileupload2.1 结合使用

    博客分类:
  • j2ee
阅读更多
昨天分析了很多错误,今天将正确的配置发布如下:
首先struts.properties中需要设置
struts.i18n.encoding=UTF-8
struts.locale=zh_CN
struts.multipart.saveDir=\temp
struts.multipart.maxSize=100000000
saveDir是struts2自带的上传功能,能够将附件临时保存在temp目录中。maxSize是附件大小,超过这个讲抛出异常。
使用了struts2自带的功能后,在上传时其实是不需要再次通过fileupload来获取。具体代码见下
request.setCharacterEncoding("UTF-8");
LoadPath loadPath = new LoadPath();
String rootPath = loadPath.getRootPath();
String path = "upload";
String fileName = "";
Util u = new Util();
// 判断有没有这个日期目录
String currData = u.getSysDate("yyyyMMdd");
// 判断目录在不,如果不在那么就添加一个目录
path = path + "/" + currData;
File dir = new File(path);
if (!dir.exists()) {
	// 不存在,需要创建目录
	try {
		dir.mkdir();
		this.log("创建目录:" + dir);
	} catch (Exception ex) {
		log.error("创建目录:" + path + "失败,原因:" + ex.toString());
	}
}

try {
	MultiPartRequestWrapper mrw = (MultiPartRequestWrapper)request;
	Enumeration<String> mu = mrw.getFileParameterNames();
	while(mu.hasMoreElements()){
		String name = mu.nextElement();
		System.out.println(request.getContentLength());
		File[] files  = mrw.getFiles(name);
		String[] fileNames = mrw.getFileNames(name);
		for(int i=0;i<files.length;i++){
			File file = files[i];
			fileName = fileNames[i];
			//保存file文件
			String oldName = fileName.substring(0, fileName
					.lastIndexOf("."));//旧文件名
			String fileNameAtt = fileName.substring(fileName
					.lastIndexOf(".") + 1, fileName.length());// 文件后缀名
			long time = System.currentTimeMillis();
			String newName = time + "." + fileNameAtt;
			long size = file.length();
			if (file.exists()) { // 文件存在时 
				FileInputStream fis=new FileInputStream(file);
				path += "/"+newName;
				FileOutputStream fs = new FileOutputStream(rootPath +"/"+ path); 
				byte[] buf = new byte[1024];  
			    int c;
			    while((c = fis.read(buf))!=-1)//返回实际读取到的大小
			    {
				fs.write(buf,0,c);
			    }
			    fs.flush(); //刷新缓冲区,记得
			    fs.close();
			    fis.close();
			}
			AppContext.getWySysFileManagerLogic().save(oldName, time+"", path, Integer.parseInt(size+""));
		}
		
	}
} catch (Exception e) {
	e.printStackTrace();
	log.info("文件上传失败!");
}

从上面可以看出,使用了MultiPartRequestWrapper mrw = (MultiPartRequestWrapper)request;来获取了上传附件的request.那么就可以获取到上传请求值,后来发现这个方法比其upload方法来说简单点。也可以获取到附件大小。
分享到:
评论

相关推荐

    struts2-core-2.1.8.1.jar

    Struts2是一个非常著名的Java ...开发者可以利用Struts2的Action、Interceptor、Result等机制,结合Apache Commons库和FreeMarker模板引擎,轻松地管理业务逻辑、处理用户输入、呈现视图,从而提高开发效率和应用质量。

    struts 2.1.8 jar 完整开发

    commons-fileupload-1.2.1 commons-io-1.3.2 freemarker-2.3.15 ognl-2.7.3 struts2-json-plugin-2.1.8.1 struts2-embeddedjsp-plugin-2.1.8.1 struts2-core-2.1.8.1 struts2-convention-plugin-2.1.8.1 xwork-core-...

    JasperReport整合Struts2所用jar包 iTextAsian.jar sqljdbc4.jar

    asm-2.2.jar commons-collections-2.1.1.jar commons-digester-1.7.jar commons-fileupload-1.2.1....struts2-core-2.1.8.1.jar struts2-jasperreports-plugin-2.1.8.1.jar xwork-core-2.1.6.jar iTextAsianCmaps.jar

    struts-2.1.8.1的全部jar包

    8. **struts2-spring-plugin.jar**:如果项目中使用了Spring框架,这个插件可以帮助集成Struts 2和Spring,实现依赖注入和生命周期管理。 9. **struts2-tiles-plugin.jar**:提供与Tiles框架的集成,用于更复杂的...

    struts-2.5.2-all所有jar包

    commons-fileupload-1.3.2.jar, commons-io-2.4.jar, commons-lang-2.4.jar, commons-lang3-3.4.jar, commons-logging-1.1.3.jar, dwr-1.1.1.jar, ezmorph-1.0.6.jar, freemarker-2.3.23.jar, google-collections-...

    struts-json.jar

    json-lib-2.2.1-jdk15.jar, ognl-2.7.3.jar, struts2-core-2.1.8.1.jar, struts2-json-plugin-2.2.1.jar, xwork-core-2.1.6.jar 避免版本不一致导致的问题,将我项目中所涉及的包上传分享以供下载~

    javaweb开发包大全

    比较全的java开发包,要用到的朋友可以下载 ant.jar antlr-2.7.2.jar ...struts2-core-2.1.8.1.jar struts2-embeddedjsp-plugin-2.1.8.1.jar struts2-json-plugin-2.1.8.1.jar xwork-core-2.1.6.jar

    SSH等jar包

    │ struts2-json-plugin-2.1.8.1.jar │ struts2-json-plugin-2.1.8.jar │ xwork-core-2.1.6.jar │ ├─upload │ commons-fileupload-1.2.1.jar │ commons-io-1.4.jar │ └─xml dom4j-1.6.1.jar jaxen-1.1...

    struts-2.5.10-all所有jar包

    1.0.jar,asm-5.1.jar,asm-commons-5.1.jar,asm-tree-5.1.jar,bsh-2.0b4.jar,classworlds-1.1.jar,commons-beanutils-1.9.2.jar,commons-collections-3.2.1.jar,commons-digester-2.1.jar,commons-fileupload-...

    构建最基本的struts2所需要用到的jar包

    1.7.0.jar,commons-fileupload-1.2.2.jar,commons-io-2.0.1.jar,commons-lang-2.5.jar,ezmorph-1.0.3.jar,freemarker-2.3.16.jar,javassist-3.11.0.GA.jar,json-lib-2.1-jdk15.jar,ognl-3.0.1.jar,struts2-...

    struts2.1.6+spring2.0+hibernate3.2常用配置包

    最近温习ssh2整合编程,顺便浏览下struts2有什么更新的消息,下载了新版本的struts2的2.1.8.1版,使用的是MyEclipse8.0开发,但是问题就随之而来了。MyEclipse8.0中自带的struts2版本是2.1.6,spring版本有2.0,2.5...

    struts文件上传 - 两种方式

    本篇文章将详细讲解两种实现Struts文件上传的方法: Commons-Fileupload 和 FileForm。 ### 1. Commons-Fileupload方式 Apache Commons FileUpload 是一个专门处理HTTP请求中多部分内容的库,非常适合用于文件上传...

    SSH2用到的jar文件集合

    commons-fileupload.jar commons-lang-2.5.jar commons-logging.jar commons-pool.jar dom4j-1.6.1.jar freemarker-2.3.8.jar hibernate3.jar hibernate-annotations-3.4.0.GA.jar hibernate-commons-annotations-...

    struts spring lib

    commons-fileupload.jar commons-lang.jar commons-logging.jar commons-pool-1.2.jar commons-validator.jar jakarta-oro.jar jdom.jar jstl.jar junit.jar log4j-1.2.8.jar naming-factory.jar poi-3.0-alpha2-...

    struts2架包.zip

    struts2-core-2.1.8.1.jar、commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、freemarker-2.3.15.jar、ognl-2.7.3.jar、struts2-spring-plugin-2.1.8.1.jar、xwork-core-2.1.6.jar

    ssh框架所需jar包

    jar包如下:antlr-2.7.6.jar,aspectjrt.jar,aspectjweaver.jar,c3p0-0.9.0.4.jar,cglib-nodep-2.1_3.jar,common-annotations.jar,commons-collections-3.1.jar,commons-dbcp.jar,commons-fileupload-1.2.1.jar,...

    Struts2用到的核心jar包

    struts2-core-2.1.8.1.jar(*) Struts2核心包,是Struts框架的“外衣” xwork-core-2.1.6.jar(*) Struts2核心包,是WebWork内核。 ognl-2.7.3.jar 用来支持ognl表达式的,类似于EL表达式,功能比EL表达式强大...

    Struts2.1.8最基础包完整包.zip

    2. **freemarker-2.3.15.jar**: Freemarker是一个强大的模板引擎,Struts2使用它来处理视图层的渲染。开发者可以使用Freemarker语言编写动态HTML页面,与控制器层的数据进行绑定。 3. **struts2-core-2.1.8.jar**: ...

    Struts2 jar包

    commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,freemarker-2.3.15.jar,ognl-2.7.3.jar,struts2-core-2.1.8.1.jar,struts2-json-plugin-2.1.8.1.jar,xwork-core-2.1.6.jar

Global site tag (gtag.js) - Google Analytics