鉴于很多刚毕业做web的同学,可能需要做一些譬如excel,pdf之类文档上传的功能,现在我们就来复习一下struts2如何将单个文件上传至服务器。
代码写的比较简单,适合刚入手的同学。
准备工作:上传文件需要的jar包 如图
jsp代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>演示struts2</title>
</head>
<body>
<form action="test.action" method="post" <span style="color:#ff0000;">enctype="multipart/form-data"</span>>
<table>
<tr>
<td>
成功!
</td>
</tr>
<tr>
<td>
<input type="file" name="file" size="50" />
<input type="submit" value="上传"/>
</td>
</tr>
</table>
</form>
</body>
</html>
java代码如下:
package Action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.struts2.ServletActionContext;
public class Testfile {
//file属性用来封装上传的文件
private File file;
//fileName属性用来封装上传的文件名
private String fileFileName;
//fileContentType属性用来封装上传文件的类型
private String fileContentType;
public String execute() throws Exception{
InputStream in = new FileInputStream(file);
String uploadPath =null;
try {
uploadPath = ServletActionContext.getServletContext().getRealPath("/upload");
} catch (Exception e) {
System.out.println("文件路径无法找到!");
return "error";
}
//设置目标文件
System.out.println(uploadPath);
File toFile = new File(uploadPath,this.getFileFileName());
OutputStream out = new FileOutputStream(toFile);
//设置缓存
byte[] buffer = new byte[1024];
int length = 0;
//读取file文件输出到toFile文件中
while((length=in.read(buffer))>0){
out.write(buffer, 0, length);
}
System.out.println("上传文件名"+fileFileName);
System.out.println("上传文件类型"+fileContentType);
//关闭输入流
in.close();
//关闭输出流
out.close();
return "success";
}
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 getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
}
我的struts2配置文件如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<span style="color:#ff0000;"><constant name="struts.multipart.saveDir" value="/tmp"></constant>
</span> <package name = "struts2" extends ="struts-default">
<action name = "login" class = "Action.struts2demo">
<result name = "error">/error.jsp</result>
<result name = "success">/success.jsp</result>
</action>
<action name = "test" class = "Action.Testfile">
<result name = "success">/success.jsp</result>
</action>
</package>
</struts>
最后在我电脑上的成功上传文件至tomcat服务器下
控制台输出如下:
需要注意的是:jsp中form表单类型enctype用multipart/form-data,这样可以把文件中的数据作为流式数据上传,不管是什么文件类型,均可上传。还有struts2中标红的需要配置,Struts2中的struts.multipart.saveDir主要是用来设置上传文件的临时目录,不配置文件上传时会报错。
好啦,下周我会讲讲登录页面验证码的实现,本人也是刚入职不久的菜鸟,需要学习的知识也很多,望大家多多指教。
java web交流学习群:532226495
分享到:
相关推荐
通过以上步骤,可以实现一个完整的Java多文件上传功能,包括使用Flash显示上传进度条,并将文件信息存储到MySQL数据库。在实际开发中,根据具体需求进行调整和优化,确保功能的稳定性和安全性。
综上所述,Java Web文件上传涉及到的技术栈广泛,包括后端的Servlet API、文件处理库,前端的表单设计,以及中间的服务器配置和安全策略。通过这些技术,开发者可以构建出安全、高效的文件上传系统。
Java文件异步上传是一种在Web应用中常见的技术,它允许用户在不阻塞浏览器界面的情况下上传文件。这种技术尤其在处理大文件或者批量上传时,...理解并掌握这些知识点,对于构建高效、用户友好的文件上传功能至关重要。
在Java Web开发中,文件上传是一项常见的功能,而为用户提供实时的上传进度条可以显著提升用户体验。本项目提供的"java web 文件上传...通过理解并运用这些技术,开发者可以创建出高效且用户体验良好的文件上传功能。
通过本文介绍的方法,我们可以有效地利用Apache Commons FileUpload组件实现在Java Web应用中的文件上传功能。相比于Smartupload等早期组件,Apache Commons FileUpload提供了更为强大的文件处理能力,并且拥有活跃...
Java Web 文件上传、下载、查看操作 Java Web 文件操作是日常开发解决的问题,主要是针对解决文件的上传下载、查看操作。下面是相关的知识点: 一、Java Web 文件上传操作 * 文件上传是指通过 HTTP 请求将文件从...
java web 开发 上传文件至服务端保存于服务端某个文件夹下 java代码示例
文件上传在JAVA WEB开发中是一项基础且重要的功能,它允许用户通过Web界面上传本地文件到服务器。本案例基于Struts框架实现,Struts是Apache软件基金会的一个开源项目,主要用于构建MVC(Model-View-Controller)...
在Java Web开发中,文件上传、下载和查看是常见的功能需求,尤其在构建交互性强的Web应用程序时。这里我们将深入探讨这些操作的核心概念和技术。 **文件上传** 文件上传主要是指用户通过Web表单将本地文件传输到...
本教程将深入探讨如何使用Java实现Web文件上传和下载的程序,这对于初学者理解Web开发的基本流程非常有帮助。 一、文件上传 1. **Multipart请求**:在HTTP协议中,文件上传通常涉及Multipart/form-data类型的请求...
在Java Web上传功能中,我们可以创建一个`FileUploadDAO`接口,声明如`uploadFile()`这样的方法,用于处理文件上传。接着,编写`FileUploadDAOImpl`类实现这个接口,它会包含实际的文件存储逻辑。例如,使用Servlet...
通过以上步骤,你可以使用Java和Struts实现一个基本的文件上传功能。记住,实际项目中还需要考虑性能优化、多文件上传、文件预览等复杂情况。随着对Struts和其他相关技术的深入理解,你可以构建更加健壮和功能丰富的...
总的来说,通过jsp和servlet的结合,可以实现用户友好的文件上传和下载功能。在开发过程中,我们需要注意处理各种异常情况,保证服务的稳定性和安全性。同时,合理地设计和优化文件存储策略,可以提高系统的性能和...
通过学习这个Java Web文件上传与下载的例子,你可以掌握处理文件的基本技巧,这对于开发Web应用来说是至关重要的。同时,记住不断更新知识,了解最新的技术趋势,如Spring Boot中的文件操作API,以及现代前端框架如...
在Java开发中,多文件上传是一项常见的功能,尤其在Web应用程序中,如用户需要上传图片、文档等附件。...通过学习和实践这个示例,开发者可以掌握如何在Java Web应用中实现安全、高效的文件上传功能。
总之,实现上述功能需要对Java Web开发、文件处理、PDF格式以及安全性有深入理解。结合XPDF和其他相关的Java库,我们可以构建出高效、安全的PDF管理系统。在实际应用中,应根据具体需求进行调整,确保代码的可维护性...
本教程将详细介绍如何利用Java后端与HTML5前端结合,实现一个实用的拖拽上传功能。这个功能允许用户直接通过拖放操作将本地文件上传到服务器,极大地简化了上传流程。 首先,我们需要了解HTML5中的拖放API。这个API...
在描述中提到的“测试可用的,网上下了很多都不能用,经过自己的努力成功了”,这可能指的是开发者在寻找和实践Java Web文件上传解决方案时遇到了问题,但最终找到了一个可行的实现方法。现在,我们将深入探讨这个...
Java Web文件上传是一个常见的开发需求,它涉及到服务器端接收客户端发送的文件并存储到服务器的特定位置。在Java Web环境中,文件上传可以通过多种框架和技术实现,例如Servlet和Struts2。接下来,我们将深入探讨这...
在Java开发中,大文件上传是一项常见的需求,尤其是在云存储、大数据传输以及互联网应用中。本项目"java实现大文件上传分片...开发者可以通过学习和实践这个示例,掌握如何在实际项目中实现高效、可靠的文件上传功能。