WebWork实现文件上传

WebWork 2.2.7 文件上传功能实现详解及实例代码 WebWork是一个轻量级的MVC框架,它基于XWork,而XWork是Apache Struts的原始设计。WebWork 2.2.7是该框架的一个稳定版本,它提供了一个灵活的Web层组件,并且支持强大的表达语言(Expression Language,EL)和OGNL(Object-Graph Navigation Language)表达式。它采用了“拦截器栈”这一概念,为开发者提供了极大的灵活性。 阅读详情
///step3
import java.io.*; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import com.opensymphony.xwork.ActionSupport; 
public class UploadAgent extends ActionSupport { 
private File doc;// doc与页面取一样的名字 
private String url;//记录跳转的url 


@Override 
public String execute() throws Exception { 
  // TODO 自动生成方法存根 
  File myFilePath = new File("../webapps/QJCProject/materiallib");//设定文件要上传的目录,也可以通过jsp页面传 
  if (!myFilePath.exists()) { 
   myFilePath.mkdir(); 
            System.out.println("*******MaKe DIR!*********"); 
        } 
  String time = ""; 
  try{ 
   Calendar now=Calendar.getInstance(); 
   SimpleDateFormat  sdf=new   SimpleDateFormat( "yyyyMMddHHmmss"); 
   time = sdf.format(now.getTime()); 
   }catch(Exception e){ 
   e.printStackTrace(); 
  } 
   
  File myFile = new File(myFilePath,time+doc.getName()); 
  try { 
    java.io.FileInputStream fosfrom = new java.io.FileInputStream(doc); 
    java.io.FileOutputStream fosto = new FileOutputStream(myFile); 
    byte bt[] = new byte[1024]; 
    int c; 
    while ( (c = fosfrom.read(bt)) > 0) { 
     fosto.write(bt, 0, c); 
    } 
    fosfrom.close(); 
    fosto.close(); 
    return "success"; 
   } 
  catch (Exception ex) { 
   ex.printStackTrace(); 
   return "error"; 
  } 
   
   
} 
public void setDoc(File doc) { 
this.doc = doc; 
} 
public File getDoc() { 
  return doc; 
} 
public String getUrl() { 
  return url; 
} 
public void setUrl(String url) { 
  this.url = url; 
} 
} 
///step2. xwork.xml ${url} ${url}

今天上午研究了一下文件上传,由于系统本身采用了webwork,所以决定就用webwork自带的上传功能吧。文章记录下一些必须的步骤。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
step1. webwork.properties
增加一下内容
webwork.multipart.saveDir=../uploads
webwork.multipart.parser=com.opensymphony.webwork.dispatcher.multipart.PellMultiPartRequest
第一个是指定webwork上传的临时目录,第二个是指定上传方式。webwork支持三种,这里采用的pell方式,另外两种没有尝试
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
step2. xwork.xml
增加一句<include file="com/upload/until/upload.xml"></include>
在upload.xml文件中

<interceptors></interceptors>之间是设定文件上传的拦截器
<action></action>之间是设定将要使用的action,在jsp文件中就可以以uploaddo作为action的名字了
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
step3. UploadAgent.java


这个文件就是处理上传文件的地方了。webwork是把文件上传到了一个临时文件夹里,就是在webwork.properties中所指定的。然后我们要做的就是把这个文件复制到你要保存的地方,同时我利用当前时间对上传的文件进行改名以防止文件名重复。在这个文件中还可以对数据库进行操作,方便对上传文件的维护
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
step4. upload.jsp

jsp文件中很简单,和平时一样写一个form,然后加上action

<form action="uploaddo.action" enctype="multipart/form-data" method="post">
<input type="file" name="doc"/>
<input type="submit" value="上传" />
</form>
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
至此,工作完成了,其实还是挺简单的啦,只不过具体怎么实现的还是不知道,哎~

webwork文件上传实现  [简单介绍]webwork 文件上传采用拦截器的方式,叫fileUpload 可供选择的上传组件有pell(2.1.7默认)jakata(2.2及以后默认),cos[例子][注意事项]1、cos和pell文件上传解析器不在被积极维护,会被很快移除.我们强烈建议你使用Jakarta的文件上传解析器,也就是缺省的解析器2、处理multipartRequest pell支持中文 阅读详情

相关推荐

webwork 文件上传

这两天要做一个文件上传的功能,为了配合webwork,使用了它带的上传功能,因为对拦截器没有深入的研究,被这个功能折腾了2天才弄出来,想想实在觉得花费时间太多了,还是得抽空好好系统的学习一下它,不能每次都到用的时候再折腾,那是被它折腾。 为了这个功能,也在网上搜了很多,看到很多人也碰到了跟我同样的问题,但是都没有很详细的解决过程,自己也是在山穷水尽的时候忽然就配置对了,所以记下来,...

wlbbswl的博客 200

前端大文件上传 - 总结(Vue3 + hook + Web Worker实现,通过多个Worker线程大大提高Hash计算的速度)

前端大文件上传 - 总结(Vue3 + hook + Web Worker实现,通过多个Worker线程大大提高Hash计算的速度)

qq_41068362的博客 3490

webwork上传文件

在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。jxl.jar可以到[url]h...

weixin_34007020的博客 115

Web Worker实现文件上传

Web Worker实现大文件分片上传解决js计算使页面卡顿的解决方案

Allen_kai_hui的博客 1921

使用Webwork 2.2.4实现文件上传

webwork.properties相关配置如下: webwork.locale=zh_CNwebwork.multipart.parser=jakartawebwork.i18n.encoding = GBK 上传页面: ...@ page language="java" contentType="text/html; charset=GB18030"    pa

我的世界我的梦 1426

WebWork之--使用fileUpload interceptor实现文件上传[基本配置+注意事项]

    使用webworkfileUpload interceptor,可以很方便的实现文件上传功能。以下为我在编写文件上传功能实现中的一些总结:一:基本配置开发环境:服务器:tomcat 5.Xwebwork版本:webwork 2.2.2另外,需要把apache下的commons FileUpload包放到你的classpath中,我的是直接放置在${app}/WEB

Mov 4248

webwork实现文件上传的功能

环境:MyEclipse版本:6.0.1 ; JDK:jdk1.5.0_10   Tomcat:tomcat-5.0.28; 配置文件 web.xml<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2

进步源自交流 702

使用webwork实现的图片上传==文件上传

说真的,做开发快两年了。自己感觉自己并没有多大的进步。心里很遗憾,虽然每次领导安排的任务也几乎都能完成。但是自我感觉质量部是很高。 近期发现身边的牛人同事们个个都有在维护自己的博客。每当完成一件工作就会将自己的工作总结好发出来与大家一起分享,我也知道这样做的好处。只是一直懒不愿意去写。每次都是在工作的时候东拼西凑的把工作好不容易完成,完事以后根本不想再回头去整理这些。久了以后发现自己都看不懂...

流氓来啦 344

Webwork 文件上传的问题

caine.fang的专栏 112

swfupload struts2 webwork 批量上传

以前做个项目是 用到了swfupload http://stephen830.iteye.com/blog/255583?page=3#comments 这里已经说的很清楚了 由于框架整合,spring3.0+webwork2.27+hibernate3.0 上传没有用了,吼吼 搞了我1夜才搞出头绪,被绕在代码里了,最后试试了,才发现时框架问题。 因为webwork2(structs...

大蘑菇 139
卧石青篱
博客等级 码龄22年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值