`

struts上传

1 
阅读更多

一.单文件上传 
添加jar包 
commons-fileupload-1.2.1.jar 
commons-io-1.4.jar 
在webroot创建一个文件如upload用于保存上传的文件 
1.upload.jsp 

Html代码  收藏代码
  1. <body>  
  2.   <s:form action="upload" enctype="multipart/form-data">  
  3.   <s:file name="file" label="file"></s:file>  
  4.   <s:submit label="upload"></s:submit>  
  5.  </s:form>  
  6. </body>  



2.UploadAction.java 

Java代码  收藏代码
  1. package com.test.upload;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileOutputStream;  
  6. import java.io.InputStream;  
  7. import java.io.OutputStream;  
  8.   
  9. import org.apache.struts2.ServletActionContext;  
  10.   
  11. import com.opensymphony.xwork2.ActionSupport;  
  12.   
  13. public class UploadAction extends ActionSupport {  
  14.  private File file;  
  15.  private String fileFileName;  
  16.  private String fileContentType;  
  17.  public File getFile() {  
  18.   return file;  
  19.  }  
  20.  public void setFile(File file) {  
  21.   this.file = file;  
  22.  }  
  23.  public String getFileContentType() {  
  24.   return fileContentType;  
  25.  }  
  26.  public void setFileContentType(String fileContentType) {  
  27.   this.fileContentType = fileContentType;  
  28.  }  
  29.  public String getFileFileName() {  
  30.   return fileFileName;  
  31.  }  
  32.  public void setFileFileName(String fileFileName) {  
  33.   this.fileFileName = fileFileName;  
  34.  }  
  35.  @Override  
  36.  public String execute() throws Exception {  
  37.   //1.构建一个输入流  
  38.   InputStream is=new FileInputStream(file);  
  39.   //2.构建一个上传文件路径  
  40.   String root=ServletActionContext.getRequest().getRealPath("/upload");  
  41.   //3.获得一个本地文件  
  42.   File diskFile=new File(root,this.getFileFileName());  
  43.   //4.构建输出流  
  44.   OutputStream os=new FileOutputStream(diskFile);  
  45.   //5.能过字节写入输出流  
  46.   byte[] buffer=new byte[400];  
  47.   int length=0;  
  48.   while((length=is.read(buffer))>0)  
  49.   {  
  50.    os.write(buffer,0,length);  
  51.   }  
  52.   is.close();  
  53.   os.close();  
  54.   return SUCCESS;  
  55.  }  
  56. }  


3.配置struts.xml 

Xml代码  收藏代码
  1. <constant name="struts.multipart.saveDir" value="c:\"></constant>  
  2.  <package name="FileuploadTest" extends="struts-default">  
  3.   <action name="upload" class="com.test.upload.UploadAction">  
  4.    <result name="success">/uploadSuccess.jsp</result>  
  5.   </action>  
  6.  </package>  



二.多文件上传 
1.upload.jsp页面 

Html代码  收藏代码
  1. <body>  
  2.   <s:form action="upload" enctype="multipart/form-data">  
  3.    <s:file name="file" label="file"></s:file>  
  4.    <s:file name="file" label="file1"></s:file>  
  5.    <s:file name="file" label="file2"></s:file>  
  6.    <s:submit label="submit"></s:submit>  
  7.   </s:form>  
  8.   </body>  


2.UploadAction.java 

Java代码  收藏代码
  1. package com.test.upload;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileOutputStream;  
  6. import java.io.InputStream;  
  7. import java.io.OutputStream;  
  8. import java.util.List;  
  9.   
  10. import org.apache.struts2.ServletActionContext;  
  11.   
  12. import com.opensymphony.xwork2.ActionSupport;  
  13.   
  14. public class UploadAction extends ActionSupport {  
  15.  private List<File> file;  
  16.   
  17.  private List<String> fileFileName;  
  18.   
  19.  private List<String> fileContentType;  
  20.   
  21.  public List<File> getFile() {  
  22.   return file;  
  23.  }  
  24.   
  25.  public void setFile(List<File> file) {  
  26.   this.file = file;  
  27.  }  
  28.   
  29.  public List<String> getFileContentType() {  
  30.   return fileContentType;  
  31.  }  
  32.   
  33.  public void setFileContentType(List<String> fileContentType) {  
  34.   this.fileContentType = fileContentType;  
  35.  }  
  36.   
  37.  public List<String> getFileFileName() {  
  38.   return fileFileName;  
  39.  }  
  40.   
  41.  public void setFileFileName(List<String> fileFileName) {  
  42.   this.fileFileName = fileFileName;  
  43.  }  
  44.   
  45.  @Override  
  46.  public String execute() throws Exception {  
  47.   for (int i = 0; i < file.size(); i++) {  
  48.    // 1.构建一个输入流  
  49.    InputStream is = new FileInputStream(file.get(i));  
  50.    // 2.构建一个上传文件路径  
  51.    String root = ServletActionContext.getRequest().getRealPath(  
  52.      "/upload");  
  53.    // 3.获得一个本地文件  
  54.    File diskFile = new File(root, this.getFileFileName().get(i));  
  55.    // 4.构建输出流  
  56.    OutputStream os = new FileOutputStream(diskFile);  
  57.    // 5.能过字节写入输出流  
  58.    byte[] buffer = new byte[400];  
  59.    int length = 0;  
  60.    while ((length = is.read(buffer)) > 0) {  
  61.     os.write(buffer, 0, length);  
  62.    }  
  63.    is.close();  
  64.    os.close();  
  65.   }  
  66.   return SUCCESS;  
  67.  }  
  68. }  
  • 大小: 379.1 KB
分享到:
评论

相关推荐

    struts上传struts上传

    在Struts框架中,文件上传功能是非常常见且实用的特性,尤其在处理用户需要上传图片、文档等数据时。然而,Struts的文件上传也存在一些安全风险,如著名的Struts2远程代码执行漏洞。接下来,我们将深入探讨Struts...

    struts 上传 和 smartupload上传

    **Struts上传** Struts是Apache软件基金会下的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。在Struts 1.x版本中,处理文件上传主要依赖于`org.apache.struts.upload.FormFile`...

    struts上传文件(图片/附件)

    struts上传文件(图片/附件),希望对初学struts的同学们有帮助。如果有事么不足,请大家多指教。

    Struts 上传下载

    Struts上传 #### 1.1 ActionForm 在Struts中,`ActionForm` 类是用于收集用户输入的数据。对于文件上传,我们需要创建一个继承自 `org.apache.struts.upload.FormFile` 的类,例如 `UploadForm`,在这个类中定义一...

    struts上传问题研究

    在"struts上传问题研究"这个主题中,我们将深入探讨Struts2框架中的文件上传功能,以及可能遇到的问题和解决方案。 文件上传是Web应用中常见的功能,Struts2通过Action类的`@FileUpload`注解或`@Params`注解支持...

    struts上传与下载

    在Struts中,文件上传和下载是常见的功能需求,尤其在构建动态网站或Web应用时。 文件上传是指用户通过网页界面将本地文件发送到服务器的过程。在Struts中,这通常涉及到以下关键知识点: 1. **ActionForm**:...

    struts上传多文件

    在实际应用中,有时我们需要同时上传多个文件,这在Struts中是可以实现的。本篇文章将深入讲解如何在Struts框架中实现多文件上传。 首先,了解Struts2文件上传的基本原理。Struts2使用了Apache的Commons FileUpload...

    基于struts上传头像功能

    在本项目"基于Struts上传头像功能"中,我们关注的核心是利用Struts实现用户头像的上传,并在上传后能够实时更新显示。这个功能对于社交网络、论坛等用户交互性强的网站尤为重要,因为它允许用户个性化自己的在线形象...

    struts上传.rar

    在本压缩包"struts上传.rar"中,重点涉及的是Struts框架中的文件上传功能。文件上传是Web应用中常见的功能,允许用户上传文件到服务器,例如图片、文档等。在Struts中实现文件上传,我们需要理解以下几个关键知识点...

    struts上传下载源代码

    以下是对Struts上传下载源代码的详细解释: 1. **struts-config.xml配置**: 在Struts配置文件`struts-config.xml`中,可以看到针对上传、下载、列表和删除操作的四个`&lt;action&gt;`元素。这些元素定义了不同操作的...

    struts 上传案例(单个上传,批量上传)

    首先,我们要了解Struts上传文件的基本原理。它基于Servlet API中的`Part`接口,通过`HttpServletRequest`对象获取上传的文件。在Struts2中,这个过程由`CommonsFileUpload`库支持,这是一个Apache提供的处理文件...

    struts上传下载实例

    在这个"Struts上传下载实例"中,我们将会探讨如何在Struts框架下实现文件的上传和下载功能,这对于开发涉及用户交互和数据交换的Web应用来说至关重要。 首先,让我们了解上传功能。在Struts中,文件上传主要依赖于`...

    struts上传下载例子

    这个"struts上传下载例子"展示了如何在Struts中实现文件上传和下载的功能,这对于任何处理用户数据交互的Web应用都是必不可少的。下面我们将深入探讨相关知识点。 首先,我们来理解MVC模式。在MVC架构中,模型...

    struts上传(已解决中文问题)

    在Struts框架中处理文件上传功能是一项常见的任务,但中文文件名在上传过程中可能会遇到乱码问题。这个问题通常与字符编码设置、服务器配置以及Struts的配置有关。 首先,让我们深入了解一下文件上传的基本原理。在...

    Struts上传图片操作

    以下是对Struts上传图片操作的详细说明。 首先,我们需要在Struts配置文件(struts-config.xml)中添加相应的Action配置,指定处理文件上传请求的Action类。例如: ```xml ``` 这里的`/uploadImage`是URL...

    struts 上传组件使用方法

    以下是对Struts上传组件的详细解释和使用方法。 ### 一、Struts上传组件介绍 Struts的上传功能主要由两个关键类实现:`org.apache.struts.upload.FormFile`和`org.apache.struts.action.ActionForm`。`FormFile`类...

    Struts上传图片.rar

    首先,理解Struts上传图片的核心在于`struts2-convention-plugin`和`struts2-core`这两个核心库。`struts2-convention-plugin`提供了自动映射Action类和URL的规则,而`struts2-core`包含了处理HTTP请求和响应的核心...

    struts上传图片原代码

    在这个"struts上传图片原代码"中,我们可以看到Struts框架如何处理用户通过网页上传图片的流程。以下是关于这个主题的详细知识点: 1. **ActionForm类**: - ActionForm是Struts框架中用于在控制器和视图之间传递...

    实现Struts上传多个文件

    ### 实现Struts上传多个文件 在开发基于Struts框架的应用程序时,有时我们需要实现文件上传功能,尤其是在需要用户上传多张图片的情况下。本篇内容将详细介绍如何在Struts项目中实现多文件上传,并提供相应的代码...

Global site tag (gtag.js) - Google Analytics