`
run_wang
  • 浏览: 169546 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Struts2中实现文件上传

阅读更多
一、上传单个文件

1、首先我们写一个Java类

import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;

public class upload {
private File image;//得到上传文件
private String imageFileName;//得到上传文件名

public File getImage() {
  return image;
}
public void setImage(File image) {
  this.image = image;
}

public String getImageFileName() {
  return imageFileName;
}
public void setImageFileName(String imageFileName) {
  this.imageFileName = imageFileName;
}

public String execute() throws Exception{
  String realPath= ServletActionContext.getServletContext().getRealPath("/images"); //此处为上传的路径
  if(image!=null){
   File saveFile=new File(new File(realPath),imageFileName);
   if(!saveFile.getParentFile().exists()){//判断文件夹是否存在,不存在则创建
    saveFile.getParentFile().mkdirs();
   }
   FileUtils.copyFile(image, saveFile);
   ActionContext.getContext().put("message", "上传成功");
  }
  return "success";
}
}



2、jsp页面

<form enctype="multipart/form-data" action="${pageContext.request.contextPath }/test/upload/image" method="post">
     <h3>单文件上传</h3>
     文件:<input type="file" name="image"><br/>
     <input type="submit" value="确定" />
</form>



二、上传多个文件

1、Java类

import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;

public class Mupload {
private File [] image;//得到上传文件
private String [] imageFileName;//得到上传文件名
//批量上传文件
public String execute() throws Exception{
  String realPath= ServletActionContext.getServletContext().getRealPath("/images");
  System.out.println("文件路径:"+realPath);
  if(image!=null){//判断文件是否为空
   File savedir=new File(realPath);//获得文件夹
   if(!savedir.getParentFile().exists()){//判断文件夹是否存在,不存在则创建
    savedir.getParentFile().mkdirs();
   }
   for (int i = 0; i < image.length; i++) {
    File saveFile=new File(savedir,imageFileName[i]);
    FileUtils.copyFile(image[i], saveFile);
   }
   ActionContext.getContext().put("message", "上传成功");
  }
  return "success";
}

public File[] getImage() {
  return image;
}
public void setImage(File[] image) {
  this.image = image;
}
public String[] getImageFileName() {
  return imageFileName;
}
public void setImageFileName(String[] imageFileName) {
  this.imageFileName = imageFileName;
}
}

2、jsp页面

<form enctype="multipart/form-data" action="${pageContext.request.contextPath }/test/upload/images" method="post">
     <h3>多文件上传</h3>
     文件1:<input type="file" name="image"><br/>
     文件2:<input type="file" name="image"><br/>
     文件3:<input type="file" name="image"><br/>
     <input type="submit" value="确定" />
</form>

需要说明的是文件的上传有容量限制,因此我们可以设定上传的大小值,在struts.xml配置文件<struts>中添加如下代码:

<constant name="struts.multipart.maxSize" value="10701096"/>
分享到:
评论

相关推荐

    在Struts 2中实现文件上传

    在 Struts 2 中实现文件上传,首先需要在 JSP 页面创建一个支持多部分数据的表单。例如,在 `FileUpload.jsp` 文件中,表单的 `method` 应设置为 `POST`,`enctype` 应设置为 `multipart/form-data`。此外,使用 `...

    在struts 2中实现文件上传

    在Struts 2中实现文件上传是常见的需求,通常用于用户提交表单时上传图片、文档等数据。下面我们将深入探讨如何在Struts 2中实现这一功能。 首先,你需要在Struts 2项目中引入相关的依赖库。Struts 2的核心库包含了...

    Struts2中实现文件上传功能文档

    下面我们将详细讨论如何在Struts2中实现文件上传,并且特别关注Word2007文档(.docx)的上传。 首先,为了创建一个可以上传文件的表单,我们需要在HTML或JSP页面上使用Struts2的标签库。以下是一个简单的示例: ``...

    Struts2框架实现文件上传

    在Struts2中实现文件上传,可以帮助开发者处理用户从浏览器端上传的文件,例如图片、文档等。以下是关于Struts2文件上传的详细知识点: 1. **依赖库**: 实现文件上传,首先需要引入Struts2的上传插件,即`struts2...

    struts2文件上传下载源代码

    描述中的链接指向了CSDN博主johnjobs的一篇文章,这篇文章详细解释了如何在Struts2中实现文件上传。博主可能讨论了以下关键点: 1. **配置Struts2 Action**:在`struts.xml`配置文件中,你需要定义一个Action,该...

    struts2实现文件上传下载

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。

    struts2实现的文件上传

    在Struts2中实现文件上传功能是常见的需求,这通常涉及到用户通过Web界面提交文件,然后服务器端处理并存储这些文件。以下将详细介绍如何使用Struts2来实现文件上传。 首先,我们需要在Struts2的配置文件(如struts...

    struts2+ajax文件进度条的实现

    在Struts2中实现文件上传功能,通常会涉及到处理大文件、用户体验优化等问题,如显示文件上传进度条。这个场景下,我们结合Ajax技术,可以创建一个实时反馈文件上传进度的动态界面,提升用户交互体验。 首先,我们...

    struts2实现多文件上传下载

    网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载...

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

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

    struts2 实现文件批量上传

    1. **文件上传组件**:在Struts2中,我们通常使用`Commons FileUpload`库来处理文件上传。这个库提供了处理多部分HTTP请求的能力,是Java中处理文件上传的标准库。我们需要在Struts2配置文件中引入对应的拦截器`...

    Struts2实现文件上传

    在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...

    struts2实现的文件上传下载,上传文件重命名(按时间戳)

    Struts2是一个强大的MVC框架,...以上就是Struts2中实现文件上传下载以及按照时间戳重命名文件的核心步骤。需要注意的是,实际开发中还需考虑错误处理、权限控制、文件类型限制等细节,以确保系统的稳定性和安全性。

    swfuplaod+struts2实现多文件上传

    在实现文件上传时,必须注意以下安全问题: 1. **文件类型检查**:限制上传的文件类型,防止恶意用户上传可执行文件或脚本。 2. **文件名重命名**:避免文件覆盖或路径遍历攻击,对上传的文件名进行重命名。 3. **...

    struts2文件上传下载

    在Struts2中实现文件上传,需要创建一个继承自`ActionSupport`的Action类。在这个类中,需要定义用于接收上传文件的私有成员变量,并为它们提供对应的getter和setter方法。例如,在`UploadAction`中,定义了`List...

    struts2实现多文件上传功能

    Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`&lt;constant&gt;`标签来设置`struts....

Global site tag (gtag.js) - Google Analytics