struts2中经常用图片上传,在action中如何获得上传图片的名称及其类型呢。
第一步:表单填写。
这里用struts标签。<%@taglib prefix="s" uri="/struts-tags" %>
<form id="pho" method="post" enctype="multipart/form-data">
请选择照片: <s:file id="imgFile" required="ture" name="
imgFile"></s:file>
<input id="butImg" type="button" value="提交"/>
</form>
第二步:action属性。
在action中写上传图片属性(省略set、get方法)
private File
imgFile;
//文件名称
private String
imgFileFileName;
//文件类型
private String
imgFileContentType;
注意红色部分要一致,这样才能拿到上传文件的名称和类型。
图片上传的方法,详细:
//返回保存成功后图片的名称
private String saveImg()throws IOException {
//文件保存路径 D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\wkh\images
String savePath = ServletActionContext.getRequest().getRealPath("/") + "images";
//文件保存URL/wkh
//String saveURL = ServletActionContext.getRequest().getContextPath();
//获取文件
File file = this.getImgFile();
//获取文件名
String oldName = this.getImgFileFileName();
//判断文件类型
String[] types = new String[]{"gif", "jpg", "jpeg","JPG", "JPEG", "png", "bmp", "PNG", "BMP"};
//设置上传最大字节
long maxSize = 10000000;
//客户端的笔
//PrintWriter out = ServletActionContext.getResponse().getWriter();
//设置返回类型
ServletActionContext.getResponse().setContentType("text/html; charset=UTF-8");
ServletActionContext.getResponse().setCharacterEncoding("UTF-8");
//检查目录
File uploadDir = new File(savePath);
if (!uploadDir.isDirectory()) {
uploadDir.mkdir();
}
FileInputStream fileInputStream = new FileInputStream(file);
if (fileInputStream.available() > maxSize) {
return "上传图片大小超过限制。";
}
//判断上传文件的格式
String fileExt = oldName.substring(oldName.lastIndexOf(".") + 1);
if (!Arrays.<String>asList(types).contains(fileExt)) {
return "上传图片的格式不正确。";
}
//重命名上传文件
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String newName = sdf.format(new Date()) + new Random().nextInt(1000) + "." + fileExt;
//保存图片
try {
writerImg(fileInputStream,savePath + "\\" + newName);
} catch (Exception e) {
return "文件上传失败。";
}
return newName;
}
分享到:
相关推荐
在处理文件上传和下载时,Struts2可能会遇到一个常见的问题,即中文文件名的乱码问题。这是因为不同的系统和软件对字符编码的支持不同,尤其是涉及到网络传输时,编码的兼容性尤为重要。 在“struts2 中文文件名...
在Struts2中,实现文件上传功能是一项常见的需求,它允许用户通过Web界面上传文件到服务器。以下是对该主题的详细解释: 1. **Struts2文件上传原理** Struts2使用Apache的Commons FileUpload库来处理文件上传。这...
本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
Struts2文件上传组件在处理文件名时,如果不进行适当的编码设置,也会出现同样的问题。 解决这个问题的关键步骤如下: 1. **配置Struts2拦截器**:Struts2的文件上传拦截器(`org.apache.struts2.interceptor....
Struts2是一个强大的MVC框架,广泛应用于Java Web开发中,包括文件的上传与下载功能。在本项目中,我们关注的是如何利用Struts2实现文件上传并重命名(按时间戳),以及如何进行文件下载。 一、Struts2文件上传 在...
2. **添加Struts2插件**:Struts2的文件上传功能依赖于`struts2-convention-plugin`和`struts2-core`等库。在`struts.xml`配置文件中,需要启用Multipart解析器,例如添加`<constant name="struts.multipart.parser...
2. **文件名重命名**:避免文件覆盖或路径遍历攻击,对上传的文件名进行重命名。 3. **文件大小限制**:设定上传文件的大小上限,防止DoS攻击。 4. **权限控制**:确保只有授权用户可以访问上传的文件。 **五、优化...
Struts2 文件上传是Web开发中的一个重要功能,它允许用户从他们的本地计算机向服务器传输文件。在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将...
在这个"struts2 上传文件及打包下载zip"的示例中,我们将探讨如何利用Struts2实现文件上传和下载功能。 首先,文件上传是Web应用程序中的常见需求。在Struts2中,我们可以使用`Struts2`提供的`CommonsFileUpload`...
Struts2、jQuery和Ajax是Web开发中的三个关键组件,它们共同构成了文件异步上传的基础框架。这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先...
在Struts2中,文件上传功能是常见的需求,比如用户可能需要上传个人照片、文档或者其他类型的文件。在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解...
这个"Struts2+上传文件源码"是一个演示如何在Struts2框架下实现文件上传的示例代码。 首先,我们来理解上传文件的基本流程。在Struts2中,文件上传是通过`Commons FileUpload`库来处理的,这是一个Apache提供的开源...
Struts2是一个强大的MVC框架,广泛应用于Java Web开发中,尤其在处理用户表单提交和文件上传等交互场景中表现出色。在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的...
Struts2作为一款流行的Java Web框架,为开发者提供了丰富的功能,包括文件上传。在使用Struts2进行文件上传时,需要依赖两个关键的第三方库:`commons-fileupload-1.2.1.jar` 和 `commons-io-1.4.jar`。这两个库在...
文件上传功能在Struts2中通过`Struts2`提供的插件来实现,主要依赖于`Apache Commons FileUpload`库。首先,要在`struts.xml`配置文件中启用文件上传支持,设置`struts.multipart.parser`为`jakarta`或`native2...
在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...
Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`<constant>`标签来设置`struts....
在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...