`
- 浏览:
79853 次
- 性别:
- 来自:
广州
-
struts上传与显示图片例子参考(二)2007年05月01日 星期二 上午 11:49例五:struts+MySQL实现图片的存储与显示
人事信息管理系统中,需要管理用户的个人身份照片。通常这种格式的照片只有几K到几十K大小,保存在数据库中易于进行管理和维护(如果放在文件夹下容易发生误操作而引起数据被修改或丢失)。
功能设计:给用户提供一个上传的界面,并设定上传文件的尺寸上限。用户上传的照片先统一保存在一个临时文件夹中,之后可以用<img>指向临时文件夹中的这个图片,让用户可以预览自己上传的照片。当所有的用户信息都收集完成后,将图片和其他信息一并提交,保存到数据库中。保存成功以后,删除临时文件夹中的图片。
实现步骤:
我使用的是从struts主页上下载的struts-1.2.8-src,其中web/examples/目录下有一个upload的例子,稍微修改了一下就直接拿过来用了。这是一个JSP页面、ActionForm和Action的组合。下面分别列出各自的代码。
upload.jsp的部分源代码:
<html:form action="/UploadSubmit" enctype="multipart/form-data">
请选择需要上传的照片:
<html:file property="theFile"/>
<html:submit value="上传"/>
</html:form>
接下来需要在ActionForm中声明这个属性,并设置getter和setter方法,这部分源代码如下:
public class UploadForm extends ActionForm {
protected FormFile theFile;
public FormFile getTheFile() {
return theFile;
}
public void setTheFile(FormFile theFile) {
this.theFile = theFile;
}
}
这个表单的theFile属性不是String或boolean,而是org.apache.struts.upload.FormFile。因为用户上传的是一个二进制文件,而HTTP协议是以文本形式传输数据的,这就需要进行转换。打个比方,一辆汽车需要从甲地送到乙地,但是两地之间只有一条索道,汽车没法开,所以就想个办法在甲地把汽车先拆了,把零件送到乙地再重新组装成一辆汽车。FormFile起的就是拆卸和组装的作用,只不过它把拆卸、传输和组装的过程都封装起来了,我们看到的是一辆汽车从甲地开进FormFile,过一会它就从乙地开出来了J我们要决定的只是把它停到什么地方,这就是Action的活了。
按照功能设计,Action要把这部车停到一个临时文件夹下面,这部分源代码如下:
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (form instanceof UploadForm) {
UploadForm theForm = (UploadForm) form;
//获取上传的数据文件
FormFile file = theForm.getTheFile();
//获取文件名
String filename= file.getFileName();
//设置图片文件临时存放的路径
HttpSession session = request.getSession();
String path = session.getServletContext().getRealPath("/") + "temp\\" + filename;
try {
//读取文件中的数据,获取二进制的数据流
InputStream stream = file.getInputStream();
// 把数据写到指定路径
OutputStream bos = new FileOutputStream(path);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.close();
logger.info("The file has been written to \""
+ path + "\"");
//设计一个标记,说明用户已经上传过照片了。
session.setAttribute("imageuploaded","true");
session.setAttribute("filename",filename);
// close the stream
stream.close();
bos.flush();
bos.close();
}catch (FileNotFoundException fnfe) {
return null;
}catch (IOException ioe) {
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
【标题】"jsp+JavaScript+struts+hibernate+css+mysql的网上书店"是一个基于Java技术栈的Web应用程序示例,它整合了多种技术来实现一个完整的网上书店系统。这个项目涉及到的主要技术包括: 1. **JSP(JavaServer ...
在本系统中,MySQL存储所有教学管理相关的数据,如学生信息、课程信息、成绩记录等。开发者可以通过Hibernate与MySQL进行数据交互,执行增删改查等操作。 这个简易教学管理系统可能包含以下功能模块: 1. 学生管理...
然后,通过Struts2的Action类处理用户提交的注册和登录请求,利用Hibernate与MySQL进行交互,完成数据的存取。同时,还需要实现用户输入的验证,例如检查用户名是否已存在,密码是否符合规则等。最后,可能会使用JSP...
在这个"struts+hibernate+mysql做的增删改查小例子"中,我们将深入探讨这三个技术如何协同工作来实现数据的CRUD(Create、Read、Update、Delete)操作。 首先,Struts是一个基于MVC设计模式的Java框架,它主要用于...
**知识点详解** 1. **JavaServer Pages (JSP)**: JSP是Java平台上的一个标准,用于创建动态网页。...通过实践,开发者可以深入理解JSP、Struts2框架以及MySQL数据库的使用,并掌握登录功能的实现方法。
在这个"Struts+mysql实现的地址簿"项目中,开发者利用Struts框架处理用户交互,而MySQL作为后台数据库存储和管理数据。 **Struts框架**: Struts是Apache软件基金会的一个开源项目,基于MVC(Model-View-Controller...
同时,Struts的配置文件(struts-config.xml)定义了请求与Action之间的映射关系。 在JSP页面中,开发者会创建HTML表单,用户可以在其中输入用户名和密码。当用户提交表单时,JSP页面会通过Struts的ActionForm将...
【标题】"jsp+mysql+struts实现的一个财务管理系统"涉及了三个主要技术:Struts、MySQL和JSP,这些都是Web开发中常见的组件。本文将详细介绍这三个技术在财务管理系统中的应用及其相互配合。 **1. Struts框架** ...
Struts2处理请求,Spring管理组件和事务,Hibernate负责数据持久化,而MySql存储数据。EhCache的加入提升了系统的性能,降低了数据库的压力。理解并掌握这些技术,对于开发高效、稳定的Web应用具有重要意义。
Struts是Java Web开发中的一个MVC(Model-View-Controller)框架,JSP(JavaServer Pages)用于创建动态网页内容,而MySQL则作为数据库存储系统数据。 **Struts框架** Struts框架是Apache组织开发的一个开源项目,...
在这个网上书店系统中,MySQL存储所有业务相关的数据,如书籍信息、库存、用户账户、订单详情等,同时支持复杂的查询操作,确保数据的快速访问和安全存储。 【综合应用】这个网上书店项目结合了这些技术,实现了...
本项目"spring+struts2+hibernate+json+dtree+mysql实现的无限级联树(全)"是一个典型的企业级应用示例,它综合了前端与后端的多种技术,实现了数据的动态展示和交互。下面将详细解析该项目中的主要技术及其应用。 1...
在"spring+struts+mysql-conn"项目中,MySQL是数据存储和管理的关键组件,Spring可能通过JDBC或JPA来与之交互,实现数据的增删改查操作。 项目中的"jar包整理"标签暗示了这个压缩包可能包含了这三者集成所需的库...
在"myeclipse+tomcat+struts+mysql"这样的组合中,MyEclipse作为开发工具,Tomcat作为运行环境,Struts作为业务逻辑的组织框架,而MySQL则作为持久化存储的数据后台。开发者通常会先在MyEclipse中创建一个新的Web...
下面我们将详细介绍如何利用Struts作为MVC框架,MySQL作为数据库,以及Eclipse作为集成开发环境来实现分页功能。 首先,Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它简化了开发过程,...
总之,物流配货网利用JSP、Struts2和MySQL构建了一个完整的Java Web应用,实现了物流行业的信息化管理。这一技术组合为系统的可扩展性、稳定性和安全性提供了坚实的基础,同时也便于后期的维护和升级。
《网上书城系统:Struts、Hibernate与MySQL的整合应用》 在当今信息化时代,网上购物已经成为人们日常生活的一部分,而网上书城系统则是其中一个重要领域。这个系统通常由多个技术框架构建,以实现高效、稳定且用户...
Struts、Hibernate、Spring 和 MySQL 是Java Web开发中常见的四大技术框架,它们组合起来可以构建高效、可维护的Web应用程序。本项目“struts+hibernate+spring+mysql做的jsp应用系统”是一个完整的示例,旨在帮助...