上次只是简单的实现了文件的上传功能,并没有实现上传文件的类型和大小的控制。这次主要是实现这两种功能。
1,在文件上传实现类UploadFile.java中添加文件类型的属性如下:
private String uploadContentType;
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
2.在struts.xml文件中配置文件上传的拦截器
<action name="upload" class="hxlzp.uploadfile.UploadFile">
<interceptor-ref name="fileUpload">
<param name="allowedTypes">
image/bmp,image/png,image/gif,image/pjpeg,image/jpg
</param>
<param name="maximumSize">2048</param>//限定图片大小不能超过2k
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<result name="success">/index1.jsp</result>
<result name="error">/error.jsp</result>
<result name="input">/upload.jsp</result>
</action>
此处注意:在为action显示的引用了拦截器之后,继承package的默认拦截器将不再起作用,所以为了继续使用默认拦截器,还必须引用默认拦截器
3.在返回input视图的upload.jsp页面显示上传文件类型错误的提示
<%@taglib prefix="s" uri="/struts-tags" %>
引用struts2标签
<s:fielderror></s:fielderror>
显示错误信息
此时运行测试 页面显示的错误信息为:系统给出的英文提示,为了便于用户明白,需做一下设置,也就牵扯到struts2的国际化问题了。
4.让错误信息显示为 自定义
- 在类路径下创建struts.properties文件 内容为:struts.custom.i18n.resources=message
- 同样在类路径下创建message_zh_CN.properties文件 内容为:
struts.messages.error.content.type.not.allowed=\u4e0a\u4f20\u6587\u4ef\u7c7b\u578b\u5fc5\u987b\u4e3a:bmp,png,gif,pjpeg,jpg
struts.messages.error.file.too.large=\u6587\u4EF6\u8FC7\u5927\uFF01
红色标注的是通过转码后生成的 中文为:上传文件类型必须为
5.完成以上 则可以进行测试上传错误类型的文件
页面显示为: 上传文件类型必须为:bmp,png,gif,pjpeg,jpg
后台则给出警告信息:
20120:43:40 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: 上传文件类型必须为:bmp,png,gif,pjpeg,jpg
上传文件过大的
页面显示:文件过大!
后台警告:
2011-11-4 20:58:33 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: 文件过大!
此时上传文件的类型与文件大小限定已经成功。
有些内容来自:http://zochegua.blog.163.com/blog/static/13183292320104134309737/
分享到:
相关推荐
在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...
在Struts2框架下实现Uploadify多文件上传,我们需要考虑以下几个关键知识点: 1. **Struts2 Action配置**: 在Struts2中,你需要创建一个Action类来处理文件上传请求。这个Action类需要继承`org.apache.struts2....
Struts2文件上传是Java Web开发中的一个...1. **配置Struts2的配置文件**:在struts.xml中,我们需要为文件上传Action定义一个action节点,设置其class属性为Action类的全限定名,并启用文件上传的配置。例如: ```xml ...
在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)和Struts框架实现文件上传功能。这是一个在Web开发中常见的需求,特别是在处理用户提交的数据时。Struts是一个基于MVC(Model-View-Controller)设计模式的...
考虑到安全性,需要限制上传文件的大小和类型,防止DoS攻击和恶意文件上传。可以在Action中进行这些验证,或者利用过滤器来拦截不符合条件的请求。 8. **资源管理**: 上传的图片可能占用大量存储空间,因此需要...
2. **创建Action类**:你需要创建一个继承自Struts 1.0的`Action`类的子类,如`UploadAction`,并在其中处理文件上传。这通常包括接收表单参数,解析上传的文件,并将其保存到服务器的某个位置。例如: ```java ...
以上就是关于“Tomcat上传下载文件”的知识点,包括了Struts2的文件上传处理、Servlet的文件下载实现以及相关的文件操作。在实际开发中,还需要考虑文件的安全性,例如防止上传恶意文件、限制上传文件大小、保护下载...
Struts 是一个经典的Java Web开发框架,用于构建MVC...综上所述,Struts实现文件上传下载涉及Struts配置、JSP页面、Action类和文件存储策略等多个方面。每个环节都需要细致设计和实现,以确保功能的完整性和安全性。
- **@tempDir**:指定文件上传时的临时工作目录,若未设置,则使用Servlet容器为Web应用分配的临时工作目录。 - **@noCache**:如果设为`true`,则在响应头中添加特定参数(如`Pragma`, `Cache-Control`, `Expires`...
在Struts中实现文件上传功能,是开发者经常遇到的需求,特别是处理用户上传图片的情况。以下是对Struts上传图片操作的详细说明。 首先,我们需要在Struts配置文件(struts-config.xml)中添加相应的Action配置,...
Struts2提供了丰富的功能,包括处理表单提交,拦截器,以及JSON(JavaScript Object Notation)支持,使数据交换更便捷。 标题中的“java图片上传源代码”指的是使用Java编程语言实现的图片上传功能。通常,这个...
- `<constant>`:用于配置Struts2的全局常量,如国际化资源文件的位置、上传文件的最大大小等。 - `<package>`:定义了一个包,其中包含了多个Action。`name`属性定义了包的名称,`extends`属性指定了继承的父包,`...