`
zy116494718
  • 浏览: 472959 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2文件上传与下载

阅读更多

Struts2下载:

 

struts.xml:

<action name="case_exportCases"  class="simsCaseinfoAction" method="exportCases">
   <param name="sessionGroup">cases</param>
   <result name="success" type="stream">
   <param name="contentType">text/plain</param>
             <param name="inputName">inputStream</param>  
             <param name="contentDisposition">attachment;filename="sims.sql"</param>
             <param name="bufferSize">4000</param>
   </result>
  </action>

 

 

 

参数含义:

contentType

内容类型,和互联网MIME标准中的规定类型一致,例如text/plain代表纯文本,text/xml表示XML,image/gif代表GIF图片,image/jpeg代表JPG图片

inputName

下载文件的来源流,对应着action类中某个类型为Inputstream的属性名,例如取值为inputStream 的属性需要编写getInputStream()方法

contentDisposition

文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,而附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件。取值为:

attachment;filename="struts2.txt" ,表示文件下载的时候保存的名字应为struts2.txt 。如果直接写filename="struts2.txt" ,那么默认情况是代表inline ,浏览器会尝试自动打开它,等价于这样的写法:inline; filename="struts2.txt"

bufferSize

下载缓冲区的大小

 

Action:

 

public class SimsCaseinfoAction extends BaseEditAction{

private InputStream inputStream;  //这里与XML里配置的inputName相对应

public FileInputStream getInputStream()  throws IOException {


  return new java.io.FileInputStream("D:\\apache6-working\\webapps\\sims\\sims.sql");//从系统磁盘文件读取数据 

  
}

 public String exportCases() throws Exception {    
       
        return SUCCESS;    
  
    } 

}

 

 

Struts2上传:

 

   Action:

 

public class SimsCaseinfoAction extends BaseEditAction{ 
     private static final int BUFFER_SIZE = 16 * 1024 ;
     private File clientFile;
     private String clientFileFileName;     //struts2默认可以获得文件名和文件类型,格式为xxxFileName,xxxContentType
     private String clientFileContentType;

public String uploadFile() throws Exception {    
  	  
     //把客户端上传的文件上传到服务器上           
    	 String fileName = this.getClientFileFileName();
    	 File serverFile = new File(ServletActionContext.getServletContext().getRealPath("/import") + "/" + fileName);
    	 String flag = "";
    	 String str =  fileName.substring(fileName.indexOf(".")+1);
    	 if(!str.equals("sql")){
    		 
    		 getRequest().setAttribute("message", "error");
    		 return SUCCESS;
    	 }
    	 copy(clientFile, serverFile); 
    }
    
	private static void copy(File src, File dst)  {
        try  {
           InputStream in = null ;
           OutputStream out = null ;
            try  {                
               in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
               out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
                byte [] buffer = new byte [BUFFER_SIZE];
                while (in.read(buffer) > 0 )  {
                   out.write(buffer);
               } 
            } finally  {
                if ( null != in)  {
                   in.close();
               } 
                 if ( null != out)  {
                   out.close();
               } 
           } 
        } catch (Exception e)  {
           e.printStackTrace();
       } 
   } 
	public File getClientFile() {
		return clientFile;
	}

	public void setClientFile(File clientFile) {
		this.clientFile = clientFile;
	}

	public String getClientFileFileName() {
		return clientFileFileName;
	}

	public void setClientFileFileName(String clientFileFileName) {
		this.clientFileFileName = clientFileFileName;
	}

	public String getClientFileContentType() {
		return clientFileContentType;
	}

	public void setClientFileContentType(String clientFileContentType) {
		this.clientFileContentType = clientFileContentType;
	}

  

0
0
分享到:
评论

相关推荐

    struts2文件上传与下载

    struts2文件上传与下载,eclipse与myeclipse导入即可使用的代码,简单易懂,希望对你有帮助,喜欢的给个五星评价,谢谢!!!

    struts2 文件上传与下载

    struts2 文件上传与下载 ,希望对其他人有所帮助!

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2文件上传下载

    struts2文件上传与下载, &lt;s:fielderror&gt;&lt;/s:fielderror&gt; 文件"&gt;&lt;/s:file&gt; &lt;s:submit id="submit" value="sbumit"&gt;&lt;/s:submit&gt; &lt;/s:form&gt;

    struts2实现文件上传下载

    在struts2基础上实现的包括单文件、多文件的上传及下载

    struts2文件上传和下载

    在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...

    struts与hibernate实现文件的上传与动态下载

    通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...

    struts2文件上传与下载源码-包含超出指定文件大小提示

    struts2文件的上传与下载,包含超出指定文件大小之后的提示。更多详细内容,请参考博客:http://blog.csdn.net/qq_20889581/article/details/52838848

    Struts2多文件上传下载实例

    在实际项目中,文件上传和下载功能是必不可少的,本实例将详细讲解如何在Struts2框架下实现单个文件及多个文件的上传与下载。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相关的Action配置,以便处理文件...

    struts2 文件上传

    struts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileupload

    struts实现的文件上传下载功能

    在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...

    基于Struts2的文件上传下载功能的完整源代码。

    在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...

    struts实现文件上传和下载源代码

    例如,Struts 1和Struts 2在处理文件上传和下载的方式上有显著区别,Struts 2引入了更多面向Action的API和拦截器机制。 5. **源代码分析** 在提供的压缩包文件`upload`中,可能包含了Action类、Struts配置文件、...

    struts2实现多文件上传下载

    3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称 (通过UploadFiles处理) 5.对配置文件中的路径可以进行动态读取(不重启服务器) ...

    struts2文件上传实例

    1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`&lt;result&gt;`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一...

    Struts2多个文件上传

    在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

Global site tag (gtag.js) - Google Analytics