前两天做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";
}
分享到:
相关推荐
实现JSP多文件上传,我们需要了解以下几个关键知识点: 1. **HTML表单与多文件选择**: 在HTML中,`<input type="file">`标签用于创建一个文件输入框,用户可以通过它选择文件。要支持多文件上传,需要设置`...
综上所述,JSP实现文件上传涉及前端表单设计、后端Servlet处理、文件保存、错误处理及安全性等多个方面。使用Apache Commons FileUpload库可以简化处理过程,但开发者仍需关注文件上传的完整流程,确保功能的稳定性...
在这个特定的项目中,我们关注的是如何使用JSP来实现文件上传的功能,这是一个常见的需求,特别是在用户需要提交表单数据时包含文件,如图片、文档等。 文件上传通常涉及以下步骤: 1. **前端交互**:在用户界面,...
总结一下,"jsp+js+oracle 实现文件上传数据库,下载到本地"涉及到的关键技术包括: 1. JSP:处理服务器端的文件上传和下载请求。 2. JavaScript:在客户端进行文件选择的验证和预览。 3. Oracle数据库:存储上传的...
本示例主要关注"jsp多文件上传",结合了jQuery和plupload库来实现这一功能。以下是对这些知识点的详细解释: 1. **JSP(JavaServer Pages)**:JSP是Java的一种动态网页技术,它允许开发人员在HTML代码中嵌入Java...
1. **安全检查**:对于上传,需要对文件类型和大小进行验证,防止恶意文件上传,如病毒或大文件占用服务器资源。 2. **权限控制**:确保只有授权用户可以上传或下载文件,避免数据泄露。 3. **性能优化**:对于大量...
本教程将详细讲解如何在JSP(Java Server Pages)环境中,结合Servlet技术,实现一个简单的文件上传功能,特别是针对图片格式(如gif和jpg),同时阻止危险文件类型(如exe和bat)的上传。 首先,我们需要理解JSP和...
"JSP多文件上传组件 v1.0" 是一个专为Java Server Pages (JSP) 设计的组件,它允许用户在Web应用程序中实现多文件批量上传。这个组件简化了开发过程,提供了用户友好的界面和高效的文件处理机制。 1. **JSP技术介绍...
本教程将深入探讨如何实现一个带有进度条显示的文件上传功能,这对于提升用户体验至关重要,因为用户可以直观地看到文件上传的进度。 首先,我们需要了解JSP的基本原理。JSP是一种用于创建动态Web页面的技术,它...
AJAX(Asynchronous JavaScript and XML)技术的引入,配合JSP(JavaServer Pages),可以实现在不刷新整个页面的情况下进行异步文件上传,并且能够动态更新上传进度,极大地提升了用户交互体验。下面我们将详细探讨...
总结,JSP文件上传组件通常涉及JSP页面设计、Servlet处理以及第三方库如Apache Commons FileUpload的使用。理解这些知识点,开发者就能构建出健壮且安全的文件上传功能。在实际应用中,务必注意文件上传的安全性,...
此外,需要注意不同浏览器对文件上传的支持情况,比如IE8及以下版本对FormData和XMLHttpRequest Level 2的支持有限。 6. **FileServlet.java**:这是服务器端处理文件上传的Servlet,通常会实现`doPost`方法来接收...
本知识点聚焦于"JSP动态多文件上传",这是一个常见的功能需求,特别是在用户需要上传多个文件如图片、文档等的场景下。我们将探讨如何利用div、css以及javascript来实现这一功能,同时强调其浏览器兼容性和整合的...
在Java Web开发中,JSP(JavaServer Pages)...综上所述,JSP和Struts实现文件上传涉及HTML表单、Struts配置、Action处理、文件操作及安全考虑等多个环节。掌握这些知识点,开发者可以构建出稳定、安全的文件上传功能。
此外,为了处理文件路径和安全性,开发者通常会使用相对路径并避免硬编码,同时对上传文件的类型和大小进行验证,防止恶意文件上传和服务器资源被滥用。 对于项目结构,可能包括以下几个部分: 1. **Web-INF**:...
【标题】"jsp文件上传到数据库里例子下载"是一个典型的Java Web开发教程,它涉及到的主要知识点是如何使用JSP(JavaServer Pages)将用户上传的文件存储到数据库中。这一过程通常用于实现用户在网站上上传图片、文档...
需要注意的是,在实际部署时,还需考虑安全性问题,例如对上传文件的合法性验证等。 此外,虽然本例中使用了IFrame来实现无刷新的效果,但真正的AJAX实现方式会更灵活和高效,可以使用jQuery等库提供的AJAX方法来...
**一、JSP文件上传基础** 在JSP中,文件上传通常涉及到HTTP协议的多部分请求(Multipart Request)。这种请求允许用户在表单中提交多个数据部分,其中包括文本字段和二进制文件。在Servlet API中,` Commons ...
在这个源码项目中,我们看到一个针对JSP文件上传功能的实现,它具有无刷新的特性,并且在上传过程中显示了详细的进度信息,为用户提供更好的用户体验。 首先,我们要理解"无刷新"的概念。在传统的文件上传过程中,...
为了实现进度显示,可以利用`AJAX`技术发送异步请求,`AJAXFileUpload`是一个常用的JavaScript库,它提供了文件上传的进度回调,可以在用户界面实时更新上传进度。 2. **后端**:在`Servlet`中,我们需要解析上传的...