Struts2文件上传、单文件、多文件上传【Struts2】

晶圆表面缺陷检测现状概述 凹坑,凸起,尖角,沟槽),使用光束对晶圆进行照射,收集反射光和散射光信息进行缺陷判断,进一步可分为无图案晶圆表面检测和宏观缺陷检测设备。KLA使用SR-DUV光,检测精度在10nm以下。扫描电子显微(电子束和晶圆表面产生二次电子,X射线等)获取高分辨率的图像,然后用图像处理表面缺陷(凹坑,凸起,尖角,沟槽等)表面容貌和材料信息,分辨率可达5-10nm。晶圆表面缺陷检测设备主要检测晶圆外观呈现出来的缺陷,损伤、毛刺等缺陷,主要设备供应商KLA,AMAT,日立等,其中KLA在晶圆表面检测设备占有市场52%左右。 阅读详情

内容是struts2的文件上传汇总,包括单文件和多文件上传,记录下来,留作备份

Struts1实现文件上传的文章(http://blog.csdn.net/itwit/article/details/7031371

1、单文件上传

1)JSP页面(simple.jsp)

<%@ page language="java" pageEncoding="utf-8"%>
<%@taglib prefix = "s" uri = "/struts-tags"%>

<html>
  <body>
    <H1><s:actionmessage/></H1>
  	<s:form action = "simpleAction" enctype="multipart/form-data">
  		<s:file name = "upload" label = "请输入要传入的文件名"></s:file>
  		<s:submit value = "save"></s:submit>
  	</s:form>
  </body>
</html>


2)Action(SimpleUploadAction)

package upload.singleUpload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import com.opensymphony.xwork2.ActionSupport;

public class SimpleUploadAction extends ActionSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private File upload;//上传的文件
	private String uploadFileName;//上传的文件名称
	private String uploadContentType;//上传的文件类型

	@Override
	public String execute() throws Exception {
		
		InputStream in = new FileInputStream(upload);
		OutputStream out = new FileOutputStream("d:\\"+uploadFileName);
		byte[] buffer = new byte[8192];
		int count = 0;
		while((count = in.read(buffer)) > 0){
			out.write(buffer,0,count);
		}
        out.close();
        in.close();
        this.addActionMessage("上传成功");
        return SUCCESS;
        
	}
	
	public File getUpload() {
		return upload;
	}
	public void setUpload(File upload) {
		this.upload = upload;
	}
	public String getUploadFileName() {
		return uploadFileName;
	}
	public void setUploadFileName(String uploadFileName) {
		this.uploadFileName = uploadFileName;
	}
	public String getUploadContentType() {
		return uploadContentType;
	}
	public void setUploadContentType(String uploadContentType) {
		this.uploadContentType = uploadContentType;
	}
}

3)Struts配置文件(struts.xml)

<action name="simpleAction" class = "upload.singleUpload.SimpleUploadAction">
   <result name = "success">/upload/simple/simple.jsp</result>
   <result name = "input">/upload/simple/simple.jsp</result>
 </action>


2、多文件上传
1)JSP页面(mutity.jsp)

<%@ page language="java" pageEncoding="utf-8"%>
<%@taglib prefix = "s" uri = "/struts-tags"%>

<html>
  <head>
  	<script language="javascript">

		function addComponent()
		{
		        var uploadHTML = document.createElement( "<input type='file'  name='upload'/>");
		        document.getElementById("files").appendChild(uploadHTML);
		        uploadHTML = document.createElement( "<p/>");
		        document.getElementById("files").appendChild(uploadHTML);
		}
		</script>
  	
  </head>
  <body>
    <input type="button" onclick="addComponent();" value="添加文件" />
        <br />
        <form action="mutityUpload.action"
            method="post" enctype="multipart/form-data">
            <span id="files"> 
            <input type='file' name='upload' />
            </span>
            <input type="submit" value="上传" />
        </form>
  </body>
</html>


2)Action(MutityUploadAction)

package upload.mutityUpload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class MutityUploadAction extends ActionSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private List<File> upload;
	private List<String> uploadFileName;
	private List<String> uploadContentType;

	@Override
	public String execute() throws Exception {
		
		for(int i = 0;upload != null && i<upload.size();i++){
			File file = upload.get(i);
			InputStream in = new FileInputStream(file);
			OutputStream out = new FileOutputStream("d:\\"+uploadFileName.get(i));
			byte[] buffer = new byte[8192];
			int count = 0;
			while((count = in.read(buffer)) > 0){
				out.write(buffer,0,count);
			}
			out.close();
	        in.close();
			
		}

        this.addActionMessage("上传成功");
        return SUCCESS;
        
	}
	

	public List<File> getUpload() {
		return upload;
	}


	public void setUpload(List<File> upload) {
		this.upload = upload;
	}


	public List<String> getUploadFileName() {
		return uploadFileName;
	}


	public void setUploadFileName(List<String> uploadFileName) {
		this.uploadFileName = uploadFileName;
	}


	public List<String> getUploadContentType() {
		return uploadContentType;
	}


	public void setUploadContentType(List<String> uploadContentType) {
		this.uploadContentType = uploadContentType;
	}
}

3)Struts配置文件(struts.xml)

<action name="mutityUpload" class = "upload.mutityUpload.MutityUploadAction">
  <result name = "success">/upload/mutity/mutity.jsp</result>
  <result name = "input">/upload/mutity/mutity.jsp</result>
</action>


 

 经过对struts1和2的文件上传学习,总结两者的区别为:

struts2中不需要再单独定义form,在action中可以定义action需要用到的属性

struts1文件上传使用的类是FileForm,struts2使用的类是File

 struts2较struts1降低了耦合度,却也增加了action的代码量,总体上来说是简洁了不少。

 

淘宝抓包,直达函数内部request请求体和response响应体, 告别FD, Charles,SSL,justtrustme 等http代理,证书工具。 淘宝抓包,hook发包函数,直接获取response相应数据 阅读详情

相关推荐

FR4板材实战:用ADS 2023快速设计微带线低通滤波器(附Line-Cal计算技巧)

本文详细介绍了使用ADS 2023在FR4板材上设计1-3GHz微带线低通滤波器的工程技巧。通过Line-Cal工具快速计算微带线参数,解决FR4板材的介质损耗和阻抗匹配问题,提供从集总参数转换到分布参数的实用方法,并分享版图设计与实测验证的关键要点,帮助工程师高效完成射频滤波器设计。

omega的博客 689

开发者导航:Struts2学习笔记之:文件上传

Struts也提供了内置标签用于文件上传,我们称为文件选择域,这与html的标签是一样用的。

开发者导航 1180

最全教程cadence建立个人CIS数据库

此时如果你删除office365,再装Access数据库,可以安装上,然后你再装office365,系统又会把Access软件给你删除掉,因为冲突了。可以在自己的电脑上新建CIS库,主要包含下面几个内容:数据库文件,原理图封装,PCB封装,数据手册,另外建议做一个器件命名的说明。allegro在调用封装的时候,是看的.psm文件,而不是.dra文件,因此只要是c0402.psm,那么所有的内容都要保持一致。(1)文件夹不要有中文,不要有空格,否则无法识别,可以参考博主的方式,全部使用英文输入法下划线。

D_Katter的博客 213

Struts2文件上传

文件上传的概述:文件上传是将本地文件上传到服务器的指定目录下。要使用Struts2进行文件上传,首先将form表单的enctype属性值设置为multipart/form-data。文件上传还需要

Keep Doing this的博客 1474

Struts2简单的实现多文件上传

1:文件上传 1、struts2文件上传功能使用的是apache下的commons-fileupload来实现。 2、Jsp的表单要求是post提交,并且enctype=”multipart/form-data” jsp页面代码: 文件: 3、action的代码:在Action中需要提供3个属性,一个File 类型,名称是表单域名,其它两个分别是表单域名+Fil...

weixin_42642314的博客 389

Struts2文件上传(全)

一、单文件上传 上传表单页面:select.jsp <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head&g...

荒的博客 721

6.Struts 2上传下载

/ 对下载文件按照 UTF-8 进行编码i < len;i++)// 取出字符中的每个字符// Unicode码值在0~255之间,不做处理}else {// 转换 UTF-8 编码byte b[];// 转换为%HH的字符串形式j++){if(k < 0){k &= 255;属性描述指定被下载文件的文件类型inputName指定被下载文件的入口输入流指定下载的文件名bufferSize指定下载文件时的缓冲大小。

相互学习 共同进步 684

Struts2文件上传(单文件/多文件)

简述: Struts2文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置, 指定用户上传文件的大小,有两种方式: 1)默认是在default.properties 文件的 struts.multipart.maxSize=2097152  键值指定为2097152 也就是2M,通过计算 2097152/(1024*1024) = 2 M

Super的专栏 5万+

flex struts2单文件上传、同名文件上传多文件上传

flexbuilder:3 ,Myeclipse:10.0,struts2.3. 工程可以在http://download.csdn.net/detail/fansy1990/6621255下载 flex使用FileReference实现单文件上传,使用FileReferenceList实现多文件上传。 1. 单文件上传: flex单文件上传,一般要经过哪些步骤呢? (1)初始化一个F

fansy1990的专栏 3124

Struts2入门(11):文件上传单文件/多文件上传示例

Struts2 文件上传Struts2 框架提供了基于表单提交的文件上传,这个功能是以 fileupload 拦截器的方式实现的,该验校器 默认使用的是Jakarta 的Common-FileUpload文件上传框架 ;当文件上传时,会被临时储存在一个临时目录里,对应的Action用于处理或移动到一个永久的目录中,以确保数据不丢失;该拦截器是 defalut Stack 的一部分,并不需要特别的...

Al_assad的博客 523

struts2 文件上传下载(单文件上传多文件上传的比较)

struts2没有提供自己的请求解析器,也就是说,struts2不会自己去处理multipart/form-data的请求,它需要调用其他请求解析器,将HTTP请求中的表单域解析出来,但struts2在原有的上传解析器上作了进一步封装,更进一步简化了文件上传,Struts2struts.properties配置文件中,配置struts2上传文件解析器struts.multipart.parser

Code-lover's Learning Notes 975

struts2文件上传(单文件/多文件)

公共部分:在maven项目pom文件下加入struts.jar包  org.apache.struts struts2-core 2.5.5 公共部分:配置web.xml Archetype Created Web Application struts2 org.apache.struts2.dispatcher.filter

老杜的博客 843

极域多媒体教室互动管理系统软件v2.0.zip

极域多媒体教室互动管理系统软件v2.0系统兼容 交叉应用全面兼容 Windows /Android /iOS/ macOS /Linux 等各类操作系统的教学终端设备,支持教师与学生不同系统终端设备交叉应用。无线互动 稳定流畅在无线网络覆盖下的普通教室中即可实现教学应用,信号传输稳定不掉线,支持多达60+台学生终端设备实现零延迟数据同步。60 台60+台终端设备流畅互动教学0 延迟0延迟视频同步传输灵活设计 程序并行灵活的工具栏应用模式,在系统运行的同时可支持任意第三方应用程序同时启动并展示融合性界面,优化课堂互动方式,满足多样化的应用需求。界面简约 轻松易用系统界面秉承人性化设计,功能图标以教学、测评、管控为逻辑科学排列,简洁明了,教师可快速上手应用。课堂交互 极致体验系统提供了高并发且零延迟屏幕广播、学生演示、共享白板、分组教学等简单但多样的课堂互动功能,极大地提升了师生互动效率、优化了互动体验。学情态势 精准感知随堂调查、抢答竞赛等多种趣味十足的互动方式,在提升教学乐趣的同时,也为教师提供了实时、直观的学情数据,帮助教师精准优化教学策略。

基于YOLOv5-5深度学习算法的风电电力网络安全监测系统_实时视频监控_安全帽佩戴检测_吸烟行为识别_火灾烟雾预警_远距离小目标识别_复杂背景适应_夜间环境优化_多尺度目标检测_.zip

基于YOLOv5-5深度学习算法的风电电力网络安全监测系统_实时视频监控_安全帽佩戴检测_吸烟行为识别_火灾烟雾预警_远距离小目标识别_复杂背景适应_夜间环境优化_多尺度目标检测_.zip

上一篇: Struts1文件上传、单文件、多文件上传【Struts1】
下一篇: 控件自适应大小【C#】
ITWIT
博客等级 码龄17年 26粉丝 17原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值