`

jsp实现文件的上传及javascript对上传文件的简单验证

    博客分类:
  • J2EE
阅读更多

  前两天做OJ的时候,我做的两个功能都涉及到了文件的上传这个功能,所以我觉得很有必要把这个模块的代码记录下来,框架使用的struts2
  首先,jsp页面中的的form表单是这样的


<form  method="post" enctype="multipart/form-data" name="form2">
  	<table>
	  <tr>
	  <td>上传</td>
	  <td><input type="file" name="file"/>(仅支持.zip格式的压缩文件)</td>
	  </tr>
  	</table>
	 input type="submit" value=" 提交 " onclick="test()"/>
  </form>


其中form表单中的action方法我设置中了javascript代码中,用于对上传文件的验证
<script type="text/javascript">
		function test()
		{
			if(form.file.value == "")
			{
				alert("请选择文件!");//确定文件框不为空
			}
			else
			{  
				var path = form.file.value;
				var name = ".zip";
				var c = path.indexOf(name,path.length-4); 
/*
验证文件的格式是否为.zip方法为检查文件路径的最后四个字符是否为.zip,是的话返回一个大于0的数字(即它们在整个字符串中的位置,如果没有的话则返回-1)
*/
				if(c>=0)
				{
					form.action="contest/shengcheng.action"; //设置form表单的action
				}
				else
				{
					alert("文件格式不正确!");
				}
			}
		}
</script>

  要正确地把文件传到服务器上,action中的代码为
         private File file;  
	private String fileFileName; //文件名,只是文件名没有路径
	
	
	
	public File getFile() { 
		return file;
	}
	public void setFile(File file) {
		this.file = file;
	}
	public String getFileFileName() {
		return fileFileName;
	}
	public void setFileFileName(String fileFileName) {
		this.fileFileName = fileFileName;
	}
	public String upload() throws Exception
	{
                  String root = ServletActionContext.getRequest().getRealPath("/upload");//上传的文件在服务器上保存的路径


		File filepath = new File(root);
		if(!filepath.exists())
			filepath.mkdirs(); //判断/tmp目录是否存在,若不存在,创建
		
		InputStream is = new FileInputStream(file);
		
		File destFile = new File(filepath,fileFileName);
		
		OutputStream os = new FileOutputStream(destFile);
		
		byte[] buffer = new byte[400];
		
		int length = 0;
		while(-1 != (length = is.read(buffer)))
		{
			os.write(buffer,0,length);
		}
		
		is.close();
		os.close();
		
		return "success";
	}
分享到:
评论

相关推荐

    ajax iframe jsp 无刷新上传文件.zip

    ajax iframe jsp 无刷新上传文件+JavaScript字符串函数大全+如何自定义Struts2表单验证后的错误信息显示格式样式

    JSP 代码生成工具 JSP Maker 1.1 英文免费版.zip

    JSP Maker 是一款强大易用的代码生成器,可从MySQL和Oracle中快速生成一套完整JSP(JAVA服务器页)代码.使用生成的JSP,用户可以轻松查看,编辑,搜索以及添加...文件上传到文件夹或数据库 CSS样式表 现场聚合 动态选择列表

    JSP动态网站开发基础教程与实验指导(从基础到应用)光盘

    5.6 文件上传 109 5.7 文件下载 113 5.8 文件计数器 116 5.9 扩展练习 117 第6章 JSP访问数据库 121 6.1 JDBC技术概述 121 6.1.1 JDBC简介 121 6.1.2 JDBC连接方式 122 6.2 JDBC数据库操作核心类 124 6.2.1 JDBC...

    Web 断点续传批量上传上传工具

    3. 支持文件及文件夹拖拽上传功能。 4. 支持文件批量上传。 5. 支持文件夹上传。 6. 基于标准HTTP协议。 7. 免费提供JavaScript SDK包,方便您将插件快速集成到已有网站中。 支持语言:PHP,JSP,ASP,ASP.NET...

    JAVA上百实例源码以及开源项目

    产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...

    Java项目:在线网盘系统(java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP)

    一、项目简述 功能:用户的邮箱注册、验证码验证以及用户登录。 不需要注册账号,也可以上传满足条件的临时文件...JSP +Springboot+ SpringMVC + MyBatis + ThymeLeaf + FTP+ JavaScript + JQuery + Ajax + maven等等

    java源码包---java 源码 大量 实例

    产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...

    JSP实验指导书

    01.JSP运行环境的构建.doc 02.制作表单输出表格.doc 03.使用JavaScript进行客户端验证表单.doc ...10.smartUpload _ 文件上传实例.doc 11.servlet处理表单实例.doc 12 过滤器实例.doc 13 监听器实例.doc

    Java_Web开发实战1200例第1卷.part2

    11.3 通过组件实现文件上传 418 11.4 文件下载 428 第12章 文件的批量管理 436 12.1 文件的批量操作 437 12.2 文件的压缩与解压缩 458 12.3 文件的批量上传 487 第3篇 图像与多媒体篇 第13章 图像生成 492 13.1 绘制...

    Java_Web开发实战1200例第1卷.part3

    11.3 通过组件实现文件上传 418 11.4 文件下载 428 第12章 文件的批量管理 436 12.1 文件的批量操作 437 12.2 文件的压缩与解压缩 458 12.3 文件的批量上传 487 第3篇 图像与多媒体篇 第13章 图像生成 492 13.1 绘制...

    JAVA上百实例源码以及开源项目源代码

    JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...

    java源码包2

    产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...

    Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)

    一、项目简述 功能:用户的邮箱注册、验证码验证以及用户登录。 不需要注册账号,也可以上传满足条件...项目技术: JSP +Springboot+ SpringMVC + MyBatis + ThymeLeaf + FTP+ JavaScript + JQuery + Ajax + maven等等

    java源码包3

    产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...

    java源码包4

    产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...

    JAVA WEB典型模块与项目实战大全

    第15章 在线文件上传和下载(struts 2.x+fileupload)  15.1 在线文件上传和下载模块原理  15.2 文件上传组件fileupload  15.3 初步使用文件上传组件(components-fileupload)  15.4 单文件的上传  15.5 多...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...

Global site tag (gtag.js) - Google Analytics