Struts2上传图片和注意事项
1.必须有拦截器:
(1).可放在公共拦截器中 <interceptor-ref name="fileUpload"/> (2).可放在action中 <!-- 配置名字为fileUpload的拦截器 --> <interceptor-ref name="fileUpload"> <!-- 配置允许上传的文件类型 --> <param name="allowedTypes">image/bmp,image/png,image/gif, image/jpeg,image/pjpeg,image/x-png</param> <!-- 配置允许上传文件的大小(单位字节) --> <param name="maximumSize">104857600</param> </interceptor-ref> <!-- defaultStack必须配置在fileUpload后面 --> <interceptor-ref name="defaultStack"></interceptor-ref>
2.修改限制的大小:
<constant name="struts.multipart.maxSize" value="10485760" /> 或 struts.multipart.maxSize=104857600
注:不用改的地方:
struts.multipart.parser=jakarta struts.multipart.saveDir=??
3.页面的form中需要加:
enctype="multipart/form-data"
4.页面的上传域如下:(注意name属性)
<input type="file" name="image" />
5.action中必须加的属性:(注意添加set/get方法)
private File image; // 上传图片获取的File对象 private String imageFileName; //上传图片获取的图片名字 private String imageContentType; //上传图片获取的图片类型
上传工具类:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Calendar; public class UploadFileUtil { /** * 上传图片的方法 * @param imageFile // 上传图片获取的File对象 * @param imageName //上传图片获取的图片名字 * @return * @throws IOException */ public static String uploadImage(File imageFile, String imageName ) throws IOException { int random = (int)(Math.random()*900)+100; /*创建输入流*/ InputStream is = new FileInputStream(imageFile); /*设置上传目录*/ String path = "G:\\resource"; Calendar cal=Calendar.getInstance(); String imageUrlPath = "images" + File.separator + cal.get(Calendar.YEAR) + File.separator + (cal.get(Calendar.MONTH)+1) + File.separator + cal.get(Calendar.DAY_OF_MONTH); String imagePath = path + File.separator + imageUrlPath; File file = new File(imagePath); if (!file.exists()) { file.mkdirs(); } /*设置目标文件*/ String targetImageName = "" + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND) + cal.get(Calendar.MILLISECOND) + random + imageName.substring(imageName.indexOf(".")); File target = new File(imagePath + File.separator + targetImageName); /*创建输出流*/ OutputStream os = new FileOutputStream(target); byte[] buffer = new byte[1024]; int length = 0; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } is.close(); os.close(); return imageUrlPath + File.separator + targetImageName; } }
参考:
相关推荐
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。
标题与描述概述的知识点主要集中在Struts2框架中的文件与...以上就是Struts2框架中文件与图片上传功能的详细解析,通过遵循上述步骤和注意事项,开发者可以有效地实现文件上传功能,提升应用程序的实用性和用户体验。
本项目主要介绍如何通过注解的方式实现Struts2的图片上传功能,这是一个非常实用的功能,尤其对于构建交互性强的Web应用来说。在本文中,我们将深入探讨Struts2的注解使用、图片上传流程以及相关的Java配置。 1. **...
8. **安全注意事项**: - 避免路径遍历攻击,确保上传的文件被保存在预定的目录下,不包含任何动态或用户可控的路径。 - 进行文件类型检查,防止执行恶意代码,如上传`.jsp`或`.php`文件。 - 考虑使用随机文件名...
在Struts2中处理文件上传是一项常见的任务,尤其是上传图片并展示它们。本篇将详细介绍如何在Struts2中实现绝对路径上传图片以及在页面上显示这些图片。 首先,了解文件上传的基本概念。在Web开发中,文件上传允许...
在Struts2中,文件上传功能是一个常见的需求,例如用户可能需要上传图片、文档或其他类型的文件。本教程将深入浅出地讲解如何在Struts2中实现文件上传,并提供一个简单的实例来帮助理解。 1. **Struts2文件上传概述...
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...
在Struts框架中处理图片上传和下载是常见的需求,这通常涉及到用户界面交互、文件存储、数据库操作等多个环节。本文将深入探讨Struts中图片的上传与下载流程,并结合SQL数据库的使用,为开发者提供实用的指导。 **1...
在Struts2框架中,文件上传是一个常见的功能,它允许用户通过Web应用程序上传文件到服务器。`codeFilter`在此上下文中通常是指一个自定义过滤器,用于在文件上传过程中进行额外的安全检查或处理。这个过滤器可以防止...
实现`uploadifive`和`Struts2`的图片上传流程大致如下: 1. **前端设置**: - 引入`uploadifive`所需的JavaScript和CSS资源到HTML页面。 - 创建一个用于文件选择的`input[type=file]`元素,并配置`uploadifive`...
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户通过表单提交的文件数据。以下是对这个主题的详细解释: 一、Struts2文件上传 1. **配置Action类**:在Struts2中,你需要创建一个Action类来处理...
`.classpath`和`.project`文件是Eclipse项目的配置文件,它们记录了项目的类路径和构建设置,确保这些设置正确指向了Struts2和文件上传的依赖。 2. **配置struts.xml**:在`struts.xml`配置文件中,我们需要定义一...
本文将详细讲解Struts2框架中实现文件上传的两种常见方法,并探讨相关的注意事项和技术要点。 首先,我们需要了解Struts2中文件上传的基础知识。Struts2通过`struts2-core`库提供的`FileUpload`拦截器来处理文件...
通过学习和理解这个例子,开发者可以掌握Struts2处理文件上传的基本步骤和注意事项,包括Action的编写、配置文件的更新以及前端表单的设计。在实际开发中,确保文件上传的安全性和稳定性是非常重要的,因此要关注...
在Struts2中处理多文件上传是一项常见的需求,特别是在处理用户需要上传多个文件的场景,如图片库、文档分享等。本篇将深入探讨Struts2如何实现多文件上传,并提供相关的知识点。 1. **Struts2上传组件** Struts2...
Struts上传 #### 1.1 ActionForm 在Struts中,`ActionForm` 类是用于收集用户输入的数据。对于文件上传,我们需要创建一个继承自 `org.apache.struts.upload.FormFile` 的类,例如 `UploadForm`,在这个类中定义一...
七、安全注意事项 在实现文件上传时,需要注意以下安全问题: 1. 验证文件类型:防止上传恶意文件,如脚本或病毒。 2. 限制文件大小:避免服务器被大量大文件拖垮。 3. 重命名上传文件:防止覆盖已有文件或利用特殊...
在Struts框架中实现上传和下载功能,是Web应用中常见的需求,例如用户上传图片、文档等,或者服务器提供文件供用户下载。下面将详细介绍如何在Struts中实现这两个功能。 首先,我们需要理解上传和下载的基本原理。...