Struts 1 对Apache的commons-fileupload进行了再封装,把上传文件封装成FormFile对象

定义UploadForm:

private FormFilefile;       //上传的文件
private Stringtext;    //文件备注
//省略setter、getter

JSP:

<html:from action="/upload?method=upload" enctype="multipart/form-data">

文件:<html:file property="file"></html:file>
<br/>
备注:<html:textarea property="text"></html:textarea>
<br/>
<html:submit value=”开始上传”/>

</html:form>

处理上传操作的action:

UploadForm uploadForm = (UploadForm) form;

StringBuffer buffer = new StringBuffer();

if(uploadForm.getFile()!= null && uploadForm.getFile().getSize()>0){
      //获取文件夹/WEB-INF/classes
      File classes = new File(getClass().getClassLoader().getResource("").getFile());

      //获取文件夹/upload
      File uploadFolder = new File(classes.getParentFile().getParentFile(),"upload");
      uploadFolder.mkdirs();

      //保存到/upload文件夹下面
      File file = new File(uploadFolder, uploadForm.getFile().getFilename());

      OutputStreat ous = null;
      InputStream ins = null;
      try{
             byte [] byt = new byte [1024];
             int len = 0;
             ins =uploadForm.getFile().getInputStream();
             ous = new FileOutputStream(file);
             while((len = ins.read(byt))!=-1){
                    ous.write(byt,0,len);
             }
      }finally{
             ins.close();
             ous.close();
      }
      //点击即可下载
      buffer.append("文件:"+"<a href=upload/>"+file.getName()+"target=_blank>"+file.getName()+"</a><br/>");
}else{
      buffer.append("没有选择文件!<br/>");
}
buffer.append("备注:"+ uploadForm.getText()+"<br/>");
response.setCharacterEncoding("UTF-8");
response.getWriter().writer(buffer.toString());

Struts 1 之文件上传的更多相关文章

  1. Struts学习之文件上传

    * 单文件上传:        * 在动作类action中声明相关属性:            * 在动作类action中,要声明与页面中表单name属性同名的属性,同名的属性的类型是File类型:  ...

  2. Struts 框架 之 文件上传下载案例

    Struts 框架 文件上传 1. 先准备 Struts 环境 (我使用的是struts 2.3.4版本) 导jar包:

  3. Struts多个文件上传

    Struts2多个文件上传 10级学员 韩晓爽课堂笔记 多个文件上传分为List集合和数组,下面我们着重介绍一下list集合的上传.都大同小异. 一 介绍 1. 在struts2文件上传的时候要先导入 ...

  4. Struts 2 之文件上传

    如果要获得上传文件的原始名称,需要定义一个String类型的属性,属性名必须为***FileName,其中***为File属性的名称:同理,如果要获取该文件的MIME类型,需要定义一个***Conte ...

  5. Java Struts文件上传和下载详解

    Struts2文件上传 Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传.上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的 ...

  6. 转:在Struts 2中实现文件上传

    (本文转自:http://www.blogjava.net/max/archive/2007/03/21/105124.html) 前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题 ...

  7. java框架篇---struts之文件上传和下载

    Struts2文件上传 Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传.上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的 ...

  8. Struts 2(八):文件上传

    第一节 基于Struts 2完成文件上传 Struts 2框架中没有提供文件上传,而是通过Common-FileUpload框架或COS框架来实现的,Struts 2在原有上传框架的基础上进行了进一步 ...

  9. 使用commons-fileupload包进行大文件上传注意事项

    项目中使用 commons-fileupload-1.2.1.jar 进行大文件上传. 测试了一把,效果很不错. 总结如下: 必须设置好上传文件的最大阀值 final long MAX_SIZE = ...

随机推荐

  1. Bootstrap中关闭第二个模态框时出现的问题和解决办法

    Bootstrap中关闭第二个模态框时出现的问题和解决办法 1.关闭第二个模态框时,第一个模态框跟着消失. 解决办法: 第二个模态框的代码不要写在第一个模态框里面,确保两个模态框相对独立; 2.关闭第 ...

  2. Struts2--验证框架

    Struts2的验证通过配置xml或者注解的方式.依赖与validationheworkflow接口(被默认的拦截器桟引入).validation接口执行验证并且创建一些列的错误域.workflow接 ...

  3. [SDOI 2015]序列统计

    Description 题库链接 给出集合 \(S\) ,元素都是小于 \(M\) 的非负整数.问能够生成出多少个长度为 \(N\) 的数列 \(A\) ,数列中的每个数都属于集合 \(S\) ,并且 ...

  4. [SCOI2014]方伯伯的玉米田

    Description 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美. 这排玉米一共有N株,它们的高度参差不齐. 方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感 ...

  5. 51nod 1376 最长递增子序列的数量(线段树)

    51nod 1376 最长递增子序列的数量 数组A包含N个整数(可能包含相同的值).设S为A的子序列且S中的元素是递增的,则S为A的递增子序列.如果S的长度是所有递增子序列中最长的,则称S为A的最长递 ...

  6. [BZOJ]2589: Spoj 10707 Count on a tree II

    Time Limit: 20 Sec  Memory Limit: 400 MB Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v),你需要回答u xor last ...

  7. 【USACO】又买饲料 单调队列dp

    题目描述 约翰开车回家,又准备顺路买点饲料了(咦?为啥要说“又”字?)回家的路程一共有 E 公里, 这一路上会经过 N 家商店,第 i 家店里有 F i 吨饲料,售价为每吨 C i 元.约翰打算买 K ...

  8. bzoj 1974: [Sdoi2010]代码拍卖会

    Description 随着iPig在P++语言上的造诣日益提升,他形成了自己一套完整的代 码库.猪王国想参加POI的童鞋们都争先恐后问iPig索要代码库.iPi g不想把代码库给所有想要的小猪,只想 ...

  9. bzoj2655calc 容斥+dp

    2655: calc Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 322  Solved: 197[Submit][Status][Discuss] ...

  10. C语言程序设计第五次作业——循环结构1

    (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉.计算公式如下: c = 5×(f-3 ...