码迷,mamicode.com
首页 > 其他好文 > 详细

暑假项目总结(四)--struts

时间:2014-09-24 18:54:57      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   使用   ar   for   

                                              Struts上传和下载

一、文件单个上传fileupload.jar

1.upload.jsp,注意enctype="multipart/form-data",type="file"

1 <form action="upload.action" method="post" enctype="multipart/form-data">
2                             上传文件:
3                             <input type="file" name="file" />
4                             <input type="submit" value="上传" />
5                         </form>

2.UploadAction

public class UploadAction {
    private File file;
    
    private String fileFileName;// 前台界面 name名 + FileName ,才能获取文件名
    
    public String getFileFileName() {
        return fileFileName;
    }

    public void setFileFileName(String fileFileName) {
        this.fileFileName = fileFileName;
    }

    public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }

    public String execute() throws Exception{
        InputStream is = new FileInputStream(file);  
        String uploadPath = ServletActionContext.getServletContext().getRealPath("/upload");  
        File toFile = new File(uploadPath, this.getFileFileName());  
        OutputStream os = new FileOutputStream(toFile);    
        byte[] buffer = new byte[1024*5];  
        int length = 0;  
        while ((length = is.read(buffer)) > 0) {  
            os.write(buffer, 0, length);  
        }   
        is.close();  
        os.close(); 
        
     return "success";
    }
}    

 

二、多文件批量上传、使用swfupload

1.IType上有一篇博客,讲解的很好,链接如下:

http://hanxin0311.iteye.com/blog/1915611

 

三、文件的下载

Struts2提供了stream结果类型,该结果类型专门用于支持文件下载的功能。当指定stream结果类型时,需要配置一个inputName参数,该参数指定了一个输入流,这个输入流是被下载文件的入口(即通过该入口才能实现文件以流的方式实现下载)。

实现文件下载的Action

public class DownloadSongAction {
    
        //获取下载文件名
    public String getDownloadFileName() {
          
            return downloadFileName;
    }
    
        //实现下载的Action类应该提供一个返回InputStream实例的方法
    public InputStream getInputStream() throws UnsupportedEncodingException{
        
    }
    
        //处理用户请求
    public String execute(){
        
    }
    
}

对应的struts.xml

<action name="downloadsong" class="cn.edu.cqu.cqzy.action.DownloadSongAction">
            <result name="success" type="stream">
                <param name="contentType">application/octet-stream;charset=UTF-8</param>
                <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
                <param name="inputName">inputStream</param>
                 <param name="bufferSize">4096</param>
            </result>
            <result name="fail">/jsp/login.jsp</result>
            <result name="authorityfail">/jsp/yxk.jsp</result>
        </action>

 

暑假项目总结(四)--struts

标签:style   blog   http   color   io   os   使用   ar   for   

原文地址:http://www.cnblogs.com/pxjgood/p/3991093.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!