主要导入包:
struts2 2.3.4.1版本相关包
其他
处理接收文件Action类FileUploadAction
package com.dahuazwan.ihwsm.demo;
import java.io.File;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class FileUploadAction extends ActionSupport {
private File image; //上传的文件
private String imageFileName; //文件名称
private String imageContentType; //文件类型
private String newName; //新名称
public String execute() throws Exception {
System.out.println(image);
System.out.println(imageFileName);
System.out.println(imageContentType);
System.out.println(newName);
return SUCCESS;
}
// set/get方法略
}
struts配置文件struts.xml:
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<!-- 解决Post乱码 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.custom.i18n.resources" value="struts"/>
<!-- 指定允许上传的文件最大字节数。默认值是2097152(2M) -->
<constant name="struts.multipart.maxSize" value="20971520"/>
<!-- 设置上传文件的临时文件夹,默认使用javax.servlet.context.tempdir -->
<constant name="struts.multipart.saveDir " value="/" />
<package name="struts3" extends="struts-default,json-default" namespace="/">
<action name="fileupload" class="com.dahuazwan.ihwsm.demo.FileUploadAction" method="execute">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
上传jsp页面内容:
<form action="fileupload" method="post" enctype="multipart/form-data"><!-- 表单文件上传遵循的格式 -->
<input type="text" name="newName" />
<input type="file" name="image"><br>
<input type="submit" value="submit">
</form>
注意点:
- form表单的method为post,且enctype为multipart/form-data
-
FileUploadAction的3个属性遵守以下规则:File {1}、String {1}FileName、String {1}ContentType,
其中{1}必须和表单中file同名。如这里是image,则对应属性为image、imageFileName、imageContentType
-
FileUploadAction还需要接收表单其他属性名称,则其名称必须和表单对应名称相等,如这里的newName
分享到:
相关推荐
该漏洞是由于 Struts2 中的 MultiPartRequestWrapper 类中的一个错误导致的,该错误可能会导致攻击者可以上传恶意文件,进而导致服务器崩溃或数据泄露。 修补方法 为了修复 S2-045 漏洞,我们可以采取以下步骤: 1...
该漏洞与Apache Struts2 (S2-045)远程代码执行漏洞原理基本相同,均是由于上传功能的异常处理函数没有正确处理用户输入的错误信息,导致远程攻击者可通过发送恶意的数据包,利用该漏洞在受影响服务器上执行任意...
除此之外,Struts2还依赖于其他一些库,如OGNL(Object-Graph Navigation Language)用于表达式语言,Freemarker或Velocity用于视图模板,以及各种插件来支持特定的功能,如文件上传、JSON处理等。 在标签中提到了...
总结来说,Struts2是一个强大的Java Web框架,其核心库与一系列依赖库共同工作,提供了一个全面的解决方案来构建复杂的Web应用。开发者可以利用Struts2的Action、Interceptor、Result等机制,结合Apache Commons库和...
综上所述,“struts2-2.2.3-all.zip”这个压缩包是一份非常全面的Struts2学习资源包,包含了从理论到实践的所有必要材料。无论是对于初学者还是有一定经验的开发者来说,都是非常宝贵的资料。通过阅读文档、研究样例...
- `struts2-convention-plugin.jar`: 提供了基于约定优于配置的功能,使得开发者无需手动编写大量的XML配置,而是根据文件命名规则自动绑定Action和结果。 3. **拦截器库** - `struts2-dojo-plugin.jar`: 提供了...
Struts2-upload-jar是Apache Struts框架的一个插件,主要功能是支持文件上传和下载。Struts2作为Java EE领域中的一个流行MVC(Model-View-Controller)框架,为开发者提供了处理用户请求、展示视图以及业务逻辑集成...
标题中的“K8_Struts2_EXP S2-045 & 任意文件上传 20170310”指的是一个与Struts2框架相关的安全漏洞,具体为S2-045漏洞,该漏洞允许攻击者进行任意文件上传。20170310可能是漏洞被发现或公开的日期,也可能是指该...
在Struts2中,它用于处理文件上传和下载等操作。 9. **commons-fileupload-1.3.3.jar**:Apache Commons FileUpload是处理HTTP多部分表单数据的库,常用于处理用户上传的文件。在Struts2中,结合commons-io库,实现...
Struts2是一个基于MVC(Model-View-...综上所述,Struts2_core-jar是构建基于Struts2框架的Java Web应用必不可少的部分,它整合了xwork、文件上传处理以及日志记录等关键功能,为开发者提供了强大且灵活的开发工具。
commons-fileupload-1.2.1.jar//文件上传时用的,为了以后用到,最好加入 commons-io-1.3.2.jar//同上 commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar struts2-core-2.2.1.1....
优化部分EXP在部分情况下被WAF拦截的问题,提高检测成功率,优化自定义上传路径exp,文件所在目录不存在时自动创建目录,防止文件因为目录不存在,导致上传失败。 2018-08-24: 增加S2-057 Struts 2.3 to 2.3.34,...
配置Struts2 JSON插件通常需要在`struts.xml`配置文件中进行,例如: ```xml <constant name="struts.enable.SlashesInActionNames" value="true"/> <constant name="struts.action.extension" value="action,json...
第1章 Struts 2概述,第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 ...
Struts1.2和Commons-Fileupload是Java Web开发中用于实现文件上传的两个重要组件。Struts1.2是Apache的一个开源框架,主要用于构建MVC(模型-视图-控制器)架构的Web应用程序,而Commons-Fileupload则是Apache ...
在这个"struts-2.0.11.2-lib"压缩包中,包含了Struts2.0.11.2版本所需的所有核心库文件,这些文件对于理解和使用Struts2框架至关重要。 1. **Struts2的核心组件**: - `struts2-core.jar`:这是Struts2框架的核心...
在Struts2中处理文件上传功能时,通常需要依赖两个关键的第三方库:`commons-fileupload`和`commons-io`。这两个jar包在Java文件上传处理中扮演着至关重要的角色。 `commons-fileupload-1.2.1.jar`是Apache Commons...
3. **插件机制**:Struts2支持丰富的插件,例如,用于文件上传的`struts2-convention-plugin`和`struts2-file-uploading-plugin`。这些插件简化了文件上传功能的实现。 4. **OGNL(Object-Graph Navigation ...
通过研究这些代码,开发者可以学习到实际应用中的Struts2文件上传下载流程。 总之,Struts2文件上传和下载是Web开发中必不可少的功能,涉及的技术点包括表单处理、文件流操作、服务器配置以及错误处理。通过理解和...
修复S2-045:Struts 2远程执行代码漏洞,时用到的jar,漏洞影响:基于Jakarta Multipart解析器执行文件上传时可能的RCE 影响版本:Struts 2.3.5 - Struts 2.3.31 Struts 2.5 - Struts 2.5.10