WebWork实现文件上传

///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>
//
至此,工作完成了,其实还是挺简单的啦,只不过具体怎么实现的还是不知道,哎~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值