文件上传使用的包:commons-upload-xx.jar

                                commons-io-xx.jar

一.实现文件上传:

1.在表单空间中添加enctype=”multipart/form-data”

<form action="upload.action" method="post" enctype="multipart/form-data">
           <input type="file" name="upload" />
           <input type="submit" value="上传" />
      </form>

2.创建Action:

           ①在action中添加属性

                private File xnamex;    //指定文件名,文件名必须与文件域的name属性名一样

                private String xnamexUploadContentType;  //文件类型

                private String xnamexFileName;   //文件名称

            ②重写execute或自定义方法:

                获取远程站点真正路径,指定文件保存路径:

                  String savePath= ServletActionContext.getServletContext.get(“/upload”);

                通过IO操作将文件写入保存文件夹

  1: package com.action;
  2: import java.io.File;
  3: import org.apache.commons.io.IOUtils;
  4: import org.apache.struts2.ServletActionContext;
  5: import com.opensymphony.xwork2.ActionSupport;
  6:
  7: public class UploadAction extends ActionSupport {
  8:   private File upload;//上传的文件
  9:   private String uploadContentType;//文件类型
 10:   private String uploadFileName;//文件名
 11:
 12:   public File getUpload() {
 13:     return upload;
 14:   }
 15:   public void setUpload(File upload) {
 16:     this.upload = upload;
 17:   }
 18:   public String getUploadContentType() {
 19:     return uploadContentType;
 20:   }
 21:   public void setUploadContentType(String uploadContentType) {
 22:     this.uploadContentType = uploadContentType;
 23:   }
 24:   public String getUploadFileName() {
 25:     return uploadFileName;
 26:   }
 27:   public void setUploadFileName(String uploadFileName) {
 28:     this.uploadFileName = uploadFileName;
 29:   }
 30:   @Override
 31:   public String execute() throws Exception {
 32:     String savaPath = ServletActionContext.getServletContext()
 33:         .getRealPath("/upload");
 34:     FileOutputStream fos=null;
 35:     FileInputStream fis=null;
 38:       fis=new FileInputStream(upload[i]);
 39:       fos=new FileOutputStream(savaPath+"\\"+uploadFileName[i]);
 44:       IOUtils.copy(fis, fos);
 45:       fis.close();
 46:       fos.flush();
 47:       fos.close();
 49:     return "success";
 50:   }
 52: }

3.在struts2.xml文件中配置:

<action name="upload" class="com.action.UploadAction">
      <result name="success">/uploadfile.jsp</result>
</action>

 

 

二.限制文件大小:

方法一:在struts2.xml文件中配置常量参数:

<constant name=”struts.multipart.maxSize” value=”50000” />

value值  为  byte

方法二:在action中引用系统定义的fileUpload拦截器,

              配置拦截器参数:<param name=”maximumSize”>50000</param>

三.限制文件类型:

 

在action中引用系统定义的fileUpload拦截器,

              配置拦截器参数:

<param name=”allowedTypes”>application/msword,·····</param>

tomcat中,在conf/web.xml中查找type

 

 

四.实现多个文件同时上传

①,将Action中属性改为数组:

               private File[]  xnamex;    //指定文件名

                private String[]  xnamexUploadContentType;  //文件类型

                private String[]  xnamexFileName;   //文件名称

②,在方法中添加数组遍历

 

五.在struts.xml中配置中配置保存路径

①.在action标签中添加参数配置

<param name=”path”>upload</param>   //指定文件夹名

②.修改文件上传Action:

添加属性:private String path;  //与配置文件中参数的name属性一致

更改保存路径:savaPath=ServletActionContext.getActionContext.get(“/”+path);

 

 

 

 

实现文件下载 (点击)

============================================================

OVER

Struts2实现文件上传和下载,多文件上传,限制文件大小,限制文件类型的更多相关文章

  1. [CentOs7]搭建ftp服务器(3)——上传,下载,删除,重命名,新建文件夹

    摘要 上篇文章介绍了如何为ftp添加虚拟用户,本篇将继续实践如何上传,下载文件. 上传 使用xftp客户端上传文件,如图所示 此时上传状态报错,查看详情 从错误看出是应为无法创建文件造成的.那么我们就 ...

  2. Eclipse 上传 删除 下载 分析 hdfs 上的文件

    本篇讲解如何通过Eclipse 编写代码去操作分析hdfs 上的文件. 1.在eclipse 下新建Map/Reduce Project项目.如图:  项目建好后,会默认加载一系列相应的jar包. 下 ...

  3. drupal7 开发自定义上传、下载模块的上传功能

    关键点有两个:1.在页面上显示出上传的控件,2.代码实现文件上传到服务器的功能 一.显示控件: 先来看关键点1: 实现页面显示出上传控件, 关键代码: $form['my_file_field'] = ...

  4. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  5. Nancy之文件上传与下载

    零.前言 由于前段时间一直在找工作,找到工作后又比较忙,又加班又通宵的赶项目,所以博客有段时间没有更新了. 今天稍微空闲一点,碰巧前几天看到有园友问我Nancy中下载文件的问题,然后就趁着休息的时间写 ...

  6. (转载)JavaWeb学习总结(五十)——文件上传和下载

    源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...

  7. SecureCRT使用sz和rz命令进行文件的上传和下载

    SecureCRT可以使用sz和rz命令进行文件的上传和下载. sz文件下载: 格式:sz 文件名称 即可将服务器的文件下载至本地. rz文件上传: 格式:rz 文件名称 即可将本地文件上传至服务器. ...

  8. JavaWeb学习总结,文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  9. JavaWeb学习总结(五十)——文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  10. 19、文件上传与下载/JavaMail邮件开发

    回顾: 一. 监听器 生命周期监听器 ServletRequestListener HttpSessionListener ServletContextListener 属性监听器 ServletRe ...

随机推荐

  1. mac 上安装服务,查看服务,重启和关闭

    首先了解下的Mac的 homebrew ,官网:https://brew.sh/index_zh-cn.html 简单的说: Homebrew 能干什么? 答:使用 Homebrew 安装 Apple ...

  2. 数据结构-栈(应用篇)之快速排序法-C和C++的实现

    一.原理解析 快速排序法: 基本思路是,从第一个元素开始,把所有比它大的元素放在它后面,把所有比它小的元素放前面.然后划分它前面和后面的所有元素,分别再做快速排序,直到无法再划分为止. 在以下程序案例 ...

  3. Elixir的Phoenix框架:请求处理之道

    本文基于Phoenix1.3,但请求的处理流程跟1.2基本一致,只是模块的命名和目录结构有所差异. 简单介绍,phoenix是一个网站框架,本质就是http请求处理.这篇文章主要就是讲一个请求,在结果 ...

  4. 深透清晰理解Java高并发概述

    1.多线程安全性 多线程安全性的定义可能众说纷纭,但是其最核心的一点就是正确性,也就是程序的行为结果和预期一致. 当多个线程访问某个类时,不管运行环境采用何种线程调度算法或者这些线程如何交替执行,且不 ...

  5. MacBook安装Win10

    // 这是一篇导入进来的旧博客,可能有时效性问题. (一)  确认你的机型 以下机型支持: ü  安装64 位版本Win10 ü  不使用U盘安装Windows l  MacBook(Retina 显 ...

  6. 声音变调算法PitchShift(模拟汤姆猫) 附完整C++算法实现代码

    上周看到一个变调算法,挺有意思的,原本计划尝试用来润色TTS合成效果的. 实测感觉还需要进一步改进,待有空再思考改进方案. 算法细节原文,移步链接: http://blogs.zynaptiq.com ...

  7. Mac 安装 Gradle

    首先下载 Gradle 通过官网进行下载 https://gradle.org 下载的文件名可能是 gradle-3.3-bin.zip 解压 将此文件解压到任意位置,如解压到 /usr/local ...

  8. Java与算法之(1) - 冒泡排序

    冒泡排序法的原理是,每次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来. 例如对4 3 6 2 7 1 5这7个数字进行从小到大的排序,从最左侧开始,首先比较4和3 因为是从小到大排序,4和3 ...

  9. Java面向对象抽象类案例分析

    /** 雇员示例: 需求:公司中程序员有姓名,工号,薪水,工作内容 项目经理除了有姓名,工号,薪水还有奖金,工作内容 对给出需求进行数据建模 分析: 在这个问题领域中,先找出涉及的对象 通过名词提炼法 ...

  10. 自制ZigBee协议分析仪

    关键词  ZigBee  Sniffer 协议  分析仪  自制  CC2530  CC2531 在开发ZigBee / Bluetooth的过程,难免会要用到Sniffer工具,Packet Sni ...