前两天做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 无刷新上传文件+JavaScript字符串函数大全+如何自定义Struts2表单验证后的错误信息显示格式样式
JSP Maker 是一款强大易用的代码生成器,可从MySQL和Oracle中快速生成一套完整JSP(JAVA服务器页)代码.使用生成的JSP,用户可以轻松查看,编辑,搜索以及添加...文件上传到文件夹或数据库 CSS样式表 现场聚合 动态选择列表
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...
3. 支持文件及文件夹拖拽上传功能。 4. 支持文件批量上传。 5. 支持文件夹上传。 6. 基于标准HTTP协议。 7. 免费提供JavaScript SDK包,方便您将插件快速集成到已有网站中。 支持语言:PHP,JSP,ASP,ASP.NET...
产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...
一、项目简述 功能:用户的邮箱注册、验证码验证以及用户登录。 不需要注册账号,也可以上传满足条件的临时文件...JSP +Springboot+ SpringMVC + MyBatis + ThymeLeaf + FTP+ JavaScript + JQuery + Ajax + maven等等
产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...
01.JSP运行环境的构建.doc 02.制作表单输出表格.doc 03.使用JavaScript进行客户端验证表单.doc ...10.smartUpload _ 文件上传实例.doc 11.servlet处理表单实例.doc 12 过滤器实例.doc 13 监听器实例.doc
11.3 通过组件实现文件上传 418 11.4 文件下载 428 第12章 文件的批量管理 436 12.1 文件的批量操作 437 12.2 文件的压缩与解压缩 458 12.3 文件的批量上传 487 第3篇 图像与多媒体篇 第13章 图像生成 492 13.1 绘制...
11.3 通过组件实现文件上传 418 11.4 文件下载 428 第12章 文件的批量管理 436 12.1 文件的批量操作 437 12.2 文件的压缩与解压缩 458 12.3 文件的批量上传 487 第3篇 图像与多媒体篇 第13章 图像生成 492 13.1 绘制...
JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...
产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...
一、项目简述 功能:用户的邮箱注册、验证码验证以及用户登录。 不需要注册账号,也可以上传满足条件...项目技术: JSP +Springboot+ SpringMVC + MyBatis + ThymeLeaf + FTP+ JavaScript + JQuery + Ajax + maven等等
产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...
产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...
第15章 在线文件上传和下载(struts 2.x+fileupload) 15.1 在线文件上传和下载模块原理 15.2 文件上传组件fileupload 15.3 初步使用文件上传组件(components-fileupload) 15.4 单文件的上传 15.5 多...
JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...