`

struts 2 批量上传文件下载以及struts 2简介、操作

阅读更多

上传jsp

---------------------------------------------


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<%@taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html> 

 <head>

    <base href="<%=basePath%>">

    

    <title></title>

    

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<script type="text/javascript">  

function addMore()  

{  

    var td = document.getElementById("more");  

    var br = document.createElement("br");  

    var input = document.createElement("input");  

    var button = document.createElement("input");  

      

    input.type="file";  

    input.name="file";  

      

    button.type="button";  

    button.value="Remove";  

      

    button.onclick = function(){  

        td.removeChild(br);  

        td.removeChild(input);  

        td.removeChild(button);  

    }  

      

    td.appendChild(br);  

    td.appendChild(input);  

    td.appendChild(button);  

}  

</script> 

</head> 

  <body>  

        <form action="upload/save.do"  enctype="multipart/form-data" method="post">       

         <table align="center" width="40%">  

            <tr>

                <td>file:</td>  

                <td id="more"><!-- 定义一个id,方便javascript调用 -->                      

                    <input type="button" value="Add More..." onclick="addMore()">  

                </td>  

            </tr>  

            <tr>  

                <td><input type="submit" value="提交">  </td>  

            </tr>  

        </table>         

        </form>

  </body>  

</html>  

------------------------------------------------------------------------------------------------------------

http://yitong.xiaodoutao.com/


上传Action

-----------------------

public class UploadAction extends ActionSupport {



private List<File> file;  

    //下面两个变量是文件名与文件类型,Struts2会自动为以下两变量赋值  

    private List<String> fileFileName;  

    private List<String> fileContentType;  

 

    public List<File> getFile() {  

        return file;  

    }  

    public void setFile(List<File> file) {  

        this.file = file;  

    }  

    public List<String> getFileFileName() {  

        return fileFileName;  

    }  

    public void setFileFileName(List<String> fileFileName) {  

        this.fileFileName = fileFileName;  

    }  

    public List<String> getFileContentType() {  

        return fileContentType;  

    }  

    public void setFileContentType(List<String> fileContentType) {  

        this.fileContentType = fileContentType;  

    }





public String save() {

String root = ServletActionContext.getRequest().getRealPath("upload");

    File dir = new File(root);

    if (dir.exists()==false){

   

      dir.mkdir();

         }

   

    for(int i = 0;i < file.size(); i++){ 

       

            InputStream is = new FileInputStream(file.get(i));   

            File destFile = new File(root,this.getFileFileName().get(i));  

         

            OutputStream os = new FileOutputStream(destFile);  

            byte[] buffer = new byte[1024];  

            int length = 0;  

            while((length= is.read(buffer)) > 0){  

                os.write(buffer, 0, length);  

            }  

            is.close();  

            os.close();  


         }

return SUCCESS;

}


}

------------------------------------------------------------------------------------------------------------


上传struts.xml

----------------------------------------


<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">


<struts>


<package name="default" extends="authority">

<action name="upload/*" method="{2}" class="{1}Action">

<interceptor-ref name="upload">  

                配置允许上传的文件类型,多个用","分隔   

              <param name="allowedTypes">  

          image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/x-png, image/pjpeg  

              </param>  

                配置允许上传的文件大小,单位字节   

              <param name="maximumSize">102400</param>  

           </interceptor-ref>  

          <interceptor-ref name="defaultStack" /> 

          <result name="success">/success.jsp</result>

</struts>

------------------------------------------------------------------------------------------------------------



下载jsp

---------------------------------------


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>My JSP 'down.jsp' starting page</title>

    

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

  </head> 

  <body>

    测试检验test <br>

    <a href="downloadCenter/execute.do?fileName=${fileName}" >下载中心</a>

  </body>

</html>

--------------------------------------------------------------------------------------------------------------------------------


下载action

----------------------------------------------------------------------------

public class DownloadCenterAction extends ActionSupport {




String inputName = "inputStream";

String fileName;

public String getFileName() {

//从页面获取文件名

fileName = getRequest().getParameter("fileName");

String downFileName =fileName ;

   try { 

     //中文文件名也是需要转码为 ISO8859-1,否则乱码

    downFileName =  new String(fileName.getBytes("ISO8859-1"), "UTF-8"); 

   } catch (UnsupportedEncodingException e) { 

     e.printStackTrace();

   } 

   return downFileName;

}

public InputStream getDownloadFile(){  

    try {

    InputStream in = ServletActionContext.getServletContext().getResourceAsStream("upload/"+fileName );

    System.err.println(in);

    return in;      

} catch (Exception e) {

return null;

}   

}

public String execute() throws Exception {  

    //调用相关业务逻辑方法,动态设置相关下载信息   

       //contentType = "application/octet-stream;charset=ISO8859-1";

        return SUCCESS;  

    }  


}

------------------------------------------------------------------------------------------------------------

下载struts.xml


--------------------------------------------------------


<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">


<struts>

     <!--下载中心 -->

<package name="download_center" extends="authority">

<action name="*/*" method="{2}" class="{1}Action">

<result name="success" type="stream">

<!-- 设置内容类型 -->

<param name="contentType">application/octet-stream;charset=ISO8859-1</param>

<!-- 设置下载文件的名字  attachment:作为附件,filename=:指定下载文件名-->

<param name="contentDisposition">attachment;filename="${downFileName}"</param>

<!-- 设置下载文件的输入流对应的方法 downloadFile对应DownloadAction中的getDownloadFile()-->

<!--对应的getDownloadFile类中的getDownloadFile方法-->

<param name="inputName">downloadFile</param>

<!-- 指定下载文件的缓冲大小 -->

<param name="bufferSize">4096</param>

</result>

</action>

</package>


</struts>

------------------------------------------------------------------------------------------------------------

http://yitong.xiaodoutao.com/

 

1
0
分享到:
评论
2 楼 miaowei 2011-12-07  
何以见得,而且我测试过的阿,最后将数据保存到数据库了,保存到数据库的一些代码没有贴出来........................
1 楼 jyjava 2011-12-06  
如果你批量的搞绝对不行

相关推荐

    Struts2批量上传文件

    总结来说,实现Struts2批量上传文件涉及到的技术点包括Struts2拦截器、Apache Commons FileUpload、Action类的文件处理以及前端的文件验证。通过这些技术,我们可以创建一个稳定且功能完备的文件上传系统,既能处理...

    struts2 实现文件批量上传

    本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、后端处理逻辑以及存储策略。 1. **文件上传组件**:在Struts2中,我们通常使用`Commons ...

    Struts2文件批量上传

    Struts2文件批量上传是Java Web开发中常见的一种功能,主要应用于网站后台处理大量用户上传的文件,如图片、文档等。Struts2是一个强大的MVC框架,它提供了丰富的功能来支持文件上传操作,包括单个文件上传和批量...

    Struts2批量上传

    本文将深入解析Struts2批量上传机制,包括其工作原理、代码实现细节以及如何在JSP页面和Action层进行集成。 #### 二、Struts2批量上传原理 Struts2框架利用了Apache Commons FileUpload组件来处理文件上传请求。当...

    Struts2 单个、批量文件上传 精简源码

    在Struts2中,批量上传通常涉及到`List&lt;File&gt;`或`List&lt;Part&gt;`类型的属性,以接收多个文件。用户可以选择多个文件,然后这些文件会被一起发送到服务器。在Action中,你需要遍历这个列表并保存每个文件。 例如,批量...

    struts2中的批量上传与文件下载(解决中文乱码问题)

    本文将详细介绍如何在Struts2框架下实现批量上传与文件下载,并解决中文乱码问题。 一、Struts2文件上传 1. 配置Struts2文件上传支持: 在struts.xml配置文件中,我们需要添加`&lt;constant&gt;`元素来设置允许上传的...

    struts2 批量上传 图片+文件

    在这个场景中,我们讨论的是如何在Struts2中实现图片和文件的批量上传,并且在上传过程中显示进度条。 批量上传是指用户可以一次性选择多个文件进行上传,而不仅仅是一个文件。这通常需要前端界面支持多选文件的...

    struts2上传文件,批量上传文件,需要的直接下载

    Struts2是一个强大的Java web应用程序框架...以上就是关于"Struts2批量上传文件"的基本实现和相关知识点,希望对你有所帮助。在实际项目中,根据具体需求,可能还需要考虑性能优化、并发处理以及文件的版本控制等问题。

    struts1实现的文件批量上传

    总之,Struts1实现文件批量上传涉及前端表单设计、ActionForm的定义、Struts配置以及后台Action的处理。通过这些步骤,我们可以构建一个完整的文件上传系统,让用户能够方便地上传多个文件到服务器。

    struts2+ajax实现批量上传文件(简单实现,自己加工)

    Struts2和Ajax技术结合可以实现用户界面与服务器之间的异步通信,从而提供更好的用户体验,尤其是在处理批量文件上传这样的任务时。在这个项目中,我们利用Struts2的Action和Ajax的异步特性来创建一个简单的批量文件...

    Struts2文件批量上传.zip

    在Struts2中,文件上传是常见的功能之一,特别是批量上传,可以处理用户一次性上传多个文件的需求。下面将详细介绍Struts2实现文件批量上传的相关知识点。 1. **Struts2的ActionContext与FileUpload插件** Struts2...

    struts2批量下载

    在Struts2框架中实现批量下载功能,是一个高级且实用的技术点,主要涉及到文件操作、流处理以及压缩算法的应用。本文将深入解析Struts2批量下载的实现原理及具体步骤,帮助开发者更好地理解和掌握这一技术。 ### ...

    Struts批量上传文件实例word

    总的来说,Struts批量上传文件涉及到前端表单的正确配置、`ActionForm`的设计、`struts-config.xml`的配置以及Action类中处理文件上传的方法实现。通过以上步骤,你可以构建一个基本的Struts批量上传文件系统。在...

    struts2批量提交数据

    3. **配置Struts2**:在Struts2的配置文件(struts.xml)中,我们需要为批量提交的Action定义一个映射。 ```xml &lt;result name="success"&gt;/success.jsp &lt;result name="input"&gt;/input.jsp ``` 4. **处理请求**:...

    基于Struts2.3的多文件批量上传/下载

    本篇文章将深入探讨如何在Struts2.3环境下实现多文件的批量上传和下载。 首先,我们需要理解文件上传的基本原理。在HTTP协议中,文件上传通常通过表单的`&lt;input type="file"&gt;`元素实现,然后服务器端的框架负责解析...

    struts2+ajax+jquery异步批量上传超大文件.zip

    struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步批量上传超大文件.zip struts2+ajax+jquery异步...

    SWFupload_struts1.rar_java 批量上传_struts1批量下载_swfupload struts1

    标题 "SWFupload_struts1.rar_java 批量上传_struts1批量下载_swfupload struts1" 提供的信息表明,这是一个与Java编程语言、Struts1框架以及SWFUpload工具相关的项目或教程。SWFUpload是一个流行的老牌JavaScript和...

    ajax_struts2_上传与下载_无刷新

    3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar....

    struts2写的上传下载 支持批量

    2. **批量上传**: 批量上传意味着用户可以一次选择并上传多个文件。这可以通过在表单中使用多个`&lt;input type="file"&gt;`元素来实现,每个元素对应一个待上传的文件。在Action类中,需要对应数量的File字段来接收这些...

    Struts2远程命令执行验证工具

    5. **文件上传测试**:除了命令执行,某些Struts2漏洞也可能允许恶意文件上传,该工具可能包含对这一风险的检测。 6. **教育与预防**:通过使用此工具,管理员不仅可以了解当前系统的安全状况,还能学习如何防止...

Global site tag (gtag.js) - Google Analytics