首页 > 其他分享 >struts1 上传文件

struts1 上传文件

时间:2023-04-26 19:33:54浏览次数:43  
标签:文件 FormFile formFile struts struts1 org apache import 上传


java代码:

package com.struts1.form;

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;

public class UploadFileForm extends ActionForm {

	private static final long serialVersionUID = 1L;
	
	private FormFile formFile;

	public FormFile getFormFile() {
		return formFile;
	}

	public void setFormFile(FormFile formFile) {
		this.formFile = formFile;
	}
}



成员变量的顺序要和jsp页面上的输入框的顺序一致。


package com.struts1.action;

import java.io.FileOutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.IOUtils;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.struts1.form.UploadFileForm;

public class UploadAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		UploadFileForm uploadFileForm = (UploadFileForm)form;
		FormFile formFile = uploadFileForm.getFormFile();
		if (formFile == null) {
			return mapping.findForward("uploadError");
		}
		String formFileName = formFile.getFileName();
		int pos = formFileName.lastIndexOf(".");
		String fileName = "c:\\";
		if (pos != -1) {
			fileName = fileName + formFileName.substring(0, pos) + System.currentTimeMillis() + formFileName.substring(pos);
		} else {
			fileName = fileName + formFileName + System.currentTimeMillis();
		}
		FileOutputStream fos = null;
		
		try {
			fos = new FileOutputStream(fileName);
			IOUtils.copy(formFile.getInputStream(), fos);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			IOUtils.closeQuietly(formFile.getInputStream());
			IOUtils.closeQuietly(fos);
		}
		
		return mapping.findForward("success");
	}

}





jsp代码:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<html:form action="uploadFile.do" enctype="multipart/form-data" method="post">
	<html:file property="formFile"></html:file><br>
	<html:submit />
</html:form>
</body>
</html>



注意:

enctype="multipart/form-data"

method="post"


struts配置文件:

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

	<form-beans>
		<form-bean name="uploadFileForm" type="com.struts1.form.UploadFileForm" />
	</form-beans>

	<global-exceptions>
	</global-exceptions>

	<global-forwards>
	</global-forwards>

	<action-mappings>
		<action path="/uploadFile" type="com.struts1.action.UploadAction"
			name="uploadFileForm" scope="request" validate="false" input="/index.jsp">
			<forward name="success" path="/success.jsp" />
			<forward name="uploadError" path="/uploadError.jsp" />
		</action>
	</action-mappings>
	
	<controller maxFileSize="1M" />

</struts-config>



controller用来对上传的文件大小等进行控制,超过最大大小就抛异常。



标签:文件,FormFile,formFile,struts,struts1,org,apache,import,上传
From: https://blog.51cto.com/u_1002776/6228669

相关文章

  • struts1 标签
    JSP引入标签前提必须把struts-taglib包及其依赖包加到WEB-INF/lib目录。<%@tagliburi="http://struts.apache.org/tags-html"prefix="html"%><%@tagliburi="http://struts.apache.org/tags-bean"prefix="bean"%><%@tagliburi=......
  • struts1 重复提交
    Struts的Token机制能够很好的解决表单重复提交的问题,基本原理是:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中......
  • 腾讯云CDN命令行自动上传
    最近这个项目的运营提供的是腾讯云的CDN,一开始使用起来不是特别方便,因为运营那边无法提供部分权限的子账号,只能自己研究下操作了。开始为了方便测试对接下载正常,使用了腾讯云专属的cosbrowser的Win端来说手动拖进去,然后测试桶路径下下载链接是否可以已正常进行。cosbrowser下载......
  • 重启nginx后提示nginx.pid文件丢失了
    //在执行nginx-sreload命令时遇到了错误,因为Nginx尝试在日志目录中读取pid文件,但是找不到它。//这通常是因为Nginx没有在启动时正确地生成该文件引起的。//为了解决这个问题,您可以尝试启动Nginx并手动创建pid文件。请使用以下命令启动Nginx:sudo/www/server/nginx/sbin/......
  • 什么是文件传输,介绍文件传输的发展进程
    什么是文件传输,介绍文件传输的发展进程首先,我们先来认识一下文件传输的定义,了解文件传输的概念,才能够真正了解文件传输软件的发展历程。文件传输(filetransfer),是指将一个文件或其中的一部分从一个计算机系统传到另一个计算机系统。它可能把文件传输至另一计算机中去存储,或访问......
  • iOS描述文件(.mobileprovision)一键申请
    转载:IOS描述文件制作教程iOS描述文件(.mobileprovision)一键申请在主界面上点击描述文件按钮。​编辑切换为居中添加图片注释,不超过140字(可选)  新建ios描述文件然后点击新建,然后输入描述文件名称,描述文件名称字符和数字,自己好辨识就可以。......
  • 关于idea使用Tomcat打开jsp文件页面失败的问题的解决
    问题描述在idea里面使用Tomcat打开jsp文件频繁报错,检查相关路径也没有任何问题,而且用来测试的jsp文件还是最简单的形式,困扰了大概5分钟左右问题解决经过查询百度可知,这次不是路径的问题,而是需要将我们在web文件夹里面创建的jsp文件复制到target文件夹里面保持与target文件夹里......
  • java程序执行exe脚本文件
    一、新建bat脚本文件,并写入执行exe脚本命令: 二、执行bat脚本:1StringfullPath="E:\\model-script\\ComSim-master.bat";2Filefile=newFile(fullPath);3if(file.exists()){//如果已存在,删除旧文件4file.delete();5......
  • 关于电脑脑共享文件无论怎么设置登录名都无法登录的问题。
    先写结论:电脑账户有可能是使用的微软账户登陆的,需要使用本地账户,设置方法是设置-》账户-》改用本地账户登录(好像叫这个),这个过程就是重新设置账户名与密码就可以了。经过:今天想要共享笔记本内的某个文件,但是发现除非设置共享不使用密码,否则无法查看。我的电脑重装过好几次,现在笔......
  • 网络安全之文件包含漏洞就是这么简单
    前言文件包含漏洞属于代码注入漏洞,为了减少重复代码的编写,引入了文件包含函数,通过文件包含函数将文件包含进来,直接使用包含文件的代码;简单来说就是一个文件里面包含另外一个或多个文件。但我们除了包含常规的代码文件外,包含的任意后缀文件都会被当作代码执行,因此,如果有允许用户控制......