(25) java web的struts2框架的使用-基于表单的文件上传

一,首先创建一个表单页面

<body>
	<form action="uploads" method="post" enctype="multipart/form-data">
		文件: <input type="file" name="uploadObject"> <input
			type="submit" value="提交">
	</form>
</body>

  

二,创建一个接受文件的Action处理上传的文件

public class FileUpload extends ActionSupport {

	private static final long serialVersionUID = 1L;

	/* 上传的文件,属性的名字和form表单中的name保持一致 */
	public File uploadObject;
	/* 获取上传文件的名字,名字的命名格式为 file 的文件名(上面)+“fileName” */
	public String uploadObjectFileName;
	/* 文件的类型名称,名字的命名格式为 file的文件名(上上面)+“ContentType” */
	public String uploadObjectContentType;

	public String execute() {

		System.out.println("fileName:" + uploadObjectFileName);
		System.out.println("contentType:" + uploadObjectContentType);
		System.out.println("File:" + uploadObject);

		// 获取要保存文件夹的物理路径(绝对路径)
		String realPath = ServletActionContext.getServletContext().getRealPath(
				"/upload");
		File file = new File(realPath);

		// 测试此抽象路径名表示的文件或目录是否存在。若不存在,创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
		if (!file.exists()) {
			file.mkdirs();
		}

		try {
			// 保存文件
			FileUtils.copyFile(uploadObject, new File(file,
					uploadObjectFileName));
		} catch (IOException e) {
			e.printStackTrace();
		}
		return SUCCESS;
	}
}

  

三,配置action

	<package name="upload" extends="struts-default">

    	 <action name="uploads" class="gy.upload.FileUpload">

            <!-- 指定(限制)上传文件的类型,定义局部拦截器,修改默认拦截器的属性
                "fileUpload.maximumSize" :限制上传最大的文件大小。
                "fileUpload.allowedTypes":允许上传文件的类型。
                "fileUpload.allowedExtensions":允许上传文件的可扩展文件类型。 -->
            <interceptor-ref name="defaultStack">
                <param name="fileUpload.maximumSize">500000000</param>
                <param name="fileUpload.allowedTypes">text/plain,application/vnd.ms-powerpoint</param>
                <param name="fileUpload.allowedExtensions">.txt,.ppt</param>
            </interceptor-ref>

            <result>/success.html</result>
            <!-- 出现错误自动会返回input结果,进入结果视图 -->
            <result name="input" >/fail.html</result>
        </action>

    </package>

  

这样就搞定了。注释很重要

原文地址:https://www.cnblogs.com/yangzigege/p/9461431.html

时间: 2024-07-29 11:50:33

(25) java web的struts2框架的使用-基于表单的文件上传的相关文章

Struts2文件上传(基于表单的文件上传)

•Commons-FileUpload组件 –Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目 •Commons-FileUpload组件特点 –使用简单:可以方便地嵌入到JSP文件中,编写少量代码即可完成文件的上传功能 –能够全程控制上传内容 –能够对上传文件的大小.类型进行控制 •需要下载Common-FileUplaod框架地址(当然MyEclipce中Struts2支持里自带有这两个包): –http://jak

java表单+多文件上传~~源代码

private static final String C_ACTION_CREAT_ACTIVITY = "meeting_register_addActivity"; @RequestMapping(value = "/addActivity") public CIPResponseMsg addActivity(HttpServletRequest request, HttpServletResponse response) throws Exception

(22) java web的struts2框架的使用-struts配置文件

1,配置文件的引用 struts中配置文件可以有多个,每个模块的包里面都可以单独设立一个struts配置文件. 主的配置文件,放在"src"文件夹下,可以引入其他配置文件,引入方式: <!-- 在总配置文件中,引入其他配置文件 --> <include file="gy/actions/struts.xml"></include> 其中file属性的配置路径可以右键,copy qualified name 2,常用常量的配置 指定

跟bWAPP学WEB安全(PHP代码)--终结篇:文件目录遍历、文件上传、SSRF、CSRF、XXE、文件包含

前言 过年过的很不顺,家里领导和我本人接连生病,年前腊月29才都治好出院,大年初六家里的拉布拉多爱犬又因为细小医治无效离开了,没能过年回家,花了好多钱,狗狗还离世了.所以也就没什么心思更新博客.今天初七,正式上班了,更新一篇吧,把bWAPP中常见的web漏洞也就一次性更新完毕,完成这个系列,虽然有点虎头蛇尾,但是也颇感无奈了.去年立的flag也还有两个大系列没有完成,一个是互联网公司常见漏洞分析,一个是C语言基础自学笔记,要看的东西太多了,也就是借着努力学习工作来忘却生活的打击和痛苦吧. 文件和

(21) java web的struts2框架的使用

在javaweb开发过程中,如果只使用servlet,jdbc,jsp进行开发,也可以遵从MVC的模式,这时候,servlet相当于control层,属于负责处理业务逻辑的控制器,同时也需要对获取和返回数据,链接的跳转和转发进行封装.那么就显得比较臃肿了.(类似iOS开发中的MVC,如果viewController负担了数据处理,业务处理和页面跳转逻辑,会变得臃肿不堪,所以后面MVVM,VIP等模式进一步细化了模块划分). struts框架,是apache公司开发的一款基于servlet封装而成

java模拟post方式提交表单实现图片上传【转】

转自:http://blog.csdn.net/5iasp/article/details/8669644 模拟表单html如下: <form action="up_result.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1"> <label> <input type="

Django框架 之 Form表单和Ajax上传文件

浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html <h3>form表单上传文件</h3> <form action="/upload_file/" method="post" enctype="multipart/form-data"> <p><input type="file" name="upload_fi

(24) java web的struts2框架的使用-action参数自动封装与类型转换

structs可以对参数进行自动封装,做法也很简单. 一,action参数自动封装: 1,可以直接在action类中,声明public的属性,接受参数. 2,属性也是是private,如果是private,需要提供setter方法,也可以根据需要提供getter方法. 3,struts可以自动对类型进行转换,一般我们会传递String类型的参数,struts可以转换成默认声明的变量类型 4,调用api时候,传递的参数名必须和action类中声明的名称相同. public class UserAc

Java单体应用 - 常用框架 - 07.Spring MVC - 表单标签库

原文地址:http://www.work100.net/training/monolithic-frameworks-spring-mvc-form-tags.html更多教程:光束云 - 免费课程 表单标签库 序号 文内章节 视频 1 声明表单标签 - 2 表单标签 - 3 文本框 - 4 密码框 - 5 文本域 - 6 复选框 - 7 复选框(多选) - 8 单选按钮 - 9 单选按钮(多选) - 10 下拉列表 - 11 下拉列表(多选) - 12 隐藏域 - 请参照如上章节导航进行阅读