首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2的文件下传和上载

2012-09-23 
struts2的文件上传和下载struts2的文件上传和下载文件上传部分:上传页面 upload.jsps:form action uplo

struts2的文件上传和下载
struts2的文件上传和下载
文件上传部分:
上传页面 upload.jsp
        <s:form action ="upload" method ="POST" enctype ="multipart/form-data" >   
                <s:file name ="file" label ="上传文件"/>
                <s:submit />   
        </s:form >
上传 UploadAction.java
  private File file;
   
  private String fileFileName;
   
  private String fileContextType;
   
  private String root;
   
  private HttpServletRequest request;
  private Map session;
   
   @Override
  public String execute() throws Exception {
    
     session.put("fileFileName", fileFileName);
    
    //取文件后缀名
     String lastname=null;
    int i = fileFileName.lastIndexOf('.');
     lastname=fileFileName.substring(i+1);       
                   
    //取当前日期
     SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
     Calendar calendar = Calendar.getInstance();
     String date=sdf.format(calendar.getTime());
    
    //10亿的随机数
     java.util.Random r=new java.util.Random();   
     String radom=String.valueOf(r.nextInt(1000000000));
    
     fileFileName=date+radom+"."+lastname;
    
     session.put("fname", fileFileName);
    
     InputStream is=new FileInputStream(file);
    
     root= ServletActionContext.getRequest().getRealPath("/upload") ;//存储到apache项目发布目录上
//     String root="D:\\a1/upload";//存储到项目文件夹里
    
     session.put("fpath", root);
     File copyFile=new File(root,fileFileName);
    
     OutputStream os=new FileOutputStream(copyFile);
    
    byte[] buffer=new byte[400];
    
    int length=0;
    
    while(     (length=is.read(buffer))     >     0     ){
       os.write(buffer, 0, length);
     }
    
     is.close();
    
     os.close();
    
    return SUCCESS;
   }
struts.xml配置
     <action name="upload"
       type="stream">
        <param name="contentType">
           application/octet-stream;charset=ISO8859-1
        </param>
        <param name="inputName">inputStream</param>
         <!-- 使用经过转码的文件名作为下载文件名,downloadFileName属性   
           对应action类中的方法 getDownloadFileName() -->
        <param name="contentDisposition">
           attachment;filename="${downloadFileName}"
        </param>
        <param name="bufferSize">4096</param>
      </result>
    </action>
以上均为部分核心文件.


Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

这两个错误的原因是缺少jar包.
commons-fileupload-1.2.1.jar
commons-io-1.4.jar


为了您的安全,请只打开来源可靠的网址
打开网站    取消
来自: http://hi.baidu.com/lichenblog/blog/item/25f02026da7a7b0b908f9dfc.html

热点排行