文件上传概述

* 要想使用HTML 表单上传一个或多个文件, 必须把 HTML 表单的 enctype 属性设置为multipart/form-data,把它的 method 属性设置为post
* 为了让用户能够选择一个文件进行上传, 程序员必须提供一个 <input type=“file”> 字段.

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

Struts 对文件上传的支持

* 在 Struts 应用程序里, FileUpload 拦截器和 Jakarta Commons FileUpload 组件可以完成文件的上传.
* 步骤:
    > 1. 在 Jsp 页面的文件上传表单里使用 file 标签. 如果需要一次上传多个文件, 就必须使用多个 file 标签, 但它们的名字必须是相同的
    > 2. 在 Action中新添加 3 个和文件上传相关的属性. 这 3 个属性的名字必须是以下格式
    > uploadImage 是 jsp 页面上的 file 标签的名字.
        上传文件:<input type="file" name="uploadImage">
    > 如果是上传单个文件, uploadImage属性的类型就是 java.io.File, 它代表被上传的文件, 第二个和第三个属性的类型是 String
        它们分别代表上传文件的文件名和文件类型

定义方式是分别是:   jsp页面file组件的名称+ContentType,

jsp页面file组件的名称+FileName

> 如果上上传多个文件, 可以使用数组或 List

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

单文件上传代码如下


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

File Upload 拦截器

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

在jsp页面显示错误信息

在struts.xml文件中根据

<result name=“input”>/upload/error.jsp</result>中所指向的error.jsp页面可以使用

<s:fielderror/>显示错误信息

====================================
  
查看struts-messages.properties文件

配置如下:

struts.messages.error.uploading=Error uploading: {0}

struts.messages.error.file.too.large=File too large: {0} "{1}""{2}" {3}

struts.messages.error.content.type.not.allowed=Content-Type not allowed: {0}"{1}" "{2}" {3}

struts.messages.error.file.extension.not.allowed=File extension not allowed: {0}"{1}" "{2}" {3}

{0}:<input type=“file” name=“uploadImage”>中name属性的值

{1}:上传文件的名称

{2}:上传文件保存到临时目录的名称

{3}:上传文件的类型(对struts.messages.error.file.too.large是上传文件的大小)

====================================
 
修改显示错误的资源文件的信息

第一步:创建新的资源文件 例如fileuploadmessage.properties,放置在src下

在该资源文件中增加如下信息

struts.messages.error.uploading=上传错误:{0}

struts.messages.error.file.too.large=上传文件太大:{0} "{1}" "{2}" {3}

struts.messages.error.content.type.not.allowed=上传文件的类型不允许: {0} "{1}" "{2}" {3}

struts.messages.error.file.extension.not.allowed=上传文件的后缀名不允许: {0} "{1}" "{2}" {3}

第二步:在struts.xml文件加载该资源文件

<!-- 设置comonfileupload上传组件允许的文件大小 才能测试出上传文件过大出现的错误信息 -->

<constant name="struts.multipart.maxSize"value="86170804"/>

<!-- 配置上传文件的出错信息的资源文件 -->

<constant name="struts.custom.i18n.resources" value="fileuploadmessage“/>

====================================
 
多文件上传代码

Struts2笔记——文件上传的更多相关文章

  1. Struts2笔记--文件上传

    Servlet 3.0规范的HttpServletRequest已经提供了方法来处理文件上传但这种上传需要在Servlet中完成.而Struts2则提供了更简单的封装. Struts2默认使用的是Ja ...

  2. struts2的文件上传

    在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来 ...

  3. jsp\struts1.2\struts2 中文件上传(转)

    jsp\struts1.2\struts2 中文件上传 a.在jsp中简单利用Commons-fileupload组件实现 b.在struts1.2中实现c.在sturts2中实现现在把Code与大家 ...

  4. Struts2+Uploadify文件上传使用详解

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例是php版本的,本文将详细介绍Uploadify在java中的使用,您也可以点击下面的链接进行演示或下 ...

  5. Struts2 多文件上传

    Struts2多文件上传只需要将 单文件上传中的File变成File[]  即可,上篇文章:单文件上传 <form action="${pageContext.request.cont ...

  6. Struts2图片文件上传,判断图片格式和图片大小

    1. 配置Struts2能够上传的最大文件大小 使用Struts2进行文件上传的时候,Struts2默认文件大小最大为2MB,如果要传大一点的文件,就需要修改struts.xml配置文件,重新设置能够 ...

  7. Struts2实现文件上传下载功能(批量上传)

    今天来发布一个使用Struts2上传下载的项目, struts2为文件上传下载提供了好的实现机制, 首先,可以先看一下我的项目截图 关于需要使用的jar包,需要用到commons-fileupload ...

  8. Struts2实现文件上传(四)

    Struts2实现文件上传 配置文件struts.xml <!-- /* * $Id: struts.xml 1364077 2012-07-21 12:57:02Z lukaszlenart ...

  9. Struts2实现文件上传(三)

    Struts2实现文件上传 配置文件web.xml <?xml version="1.0" encoding="UTF-8"?> <web-a ...

随机推荐

  1. hadoop日志太大

    hadoop jobtracker日志太大在jobtracker服务器上的mapred-site.xml中添加以下参数: <property> <name>mapreduce. ...

  2. 在云服务器搭建WordPress博客(六)发布和管理文章

    <( ̄︶ ̄)↗[GO!] 发布文章是一个网站后台最重要的功能之一,WordPress的文章发布功能是比较强大的,系统简单地介绍一下. 访问后台 – 文章 – 写文章 ,就可以看到如下图所示的界面 ...

  3. CSS3选择器学习笔记

    CSS选择器总结: 一.基本选择器 1.通配选择器:[  *  ]        选择文档中所以HTML元素. *{margin: 0;padding: 0;} /*选择页面中的所有元素并设置marg ...

  4. SPFA 原理剖析代码实现分析比较

    算法简介 SPFA(Shortest Path Faster Algorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算. 算法流程 算法大致流程是用一个队列来进行维护. ...

  5. load d3dcompiler_46.dll failed

    https://gist.github.com/rygorous/7936047 编shader的时候遇到这个warning不知道是不是什么隐患..从今天开始要做新项目了 尝试从同事那里要了这dll ...

  6. Lessons learned from manually classifying CIFAR-10

    Lessons learned from manually classifying CIFAR-10 Apr 27, 2011 CIFAR-10 Note, this post is from 201 ...

  7. 管理员必须掌握的八个cmd命令

    一.ping   它是用来检查网络是否通畅或者网络连接速度的命令.作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的 ...

  8. 关于JS中的constructor与prototype

    ======================================================================== 在学习JS的面向对象过程中,一直对constructo ...

  9. set gameobject Icons by Script

    有很多时候我们需要在编辑器查看一个Gameobject的移动,有些人采用Gizoms类,可是如果不想用,可以使用U3D内置的Icon类. 但是如果想在脚本中设置而不是通过手动选择呢? Google之, ...

  10. Ogre1.8.1编译时大量warning的问题

    本文的编译环境为Windows7_SP1 + VS2010_SP1 :) 当编译Ogre1.8.1的源码时,会出现大量的warning,如图: 虽然没有太大影响,但是程序员都希望自己的程序是没有war ...