首先,图片在hibernate的配置文件中要标示为:
<property name="photo"
type="org.springframework.orm.hibernate3.support.BlobByteArrayType">
<column name="PHOTO" />
</property>
这样图片在数据库中是以BLOB形式存储的。在对应的实体类中:
private byte[] photo;
将其定义为字符数组的形式。
上传:对应的form定义上传文件
public class StudentInfoForm extends ActionForm {
private FormFile uploadFile ;
public FormFile getUploadFile() {
return uploadFile;
}
public void setUploadFile(FormFile uploadFile) {
this.uploadFile = uploadFile;
}
}
对应的jsp页面中声明:将实体类的photo属性作为隐藏域保存在页面中。
<tr>
<td width="10%" height="15" align="right" valign="middle" bgcolor="#F2F2F2">
照片
</td>
<td align="left" colspan="5" bgcolor="#FFFFFF">
<nested:hidden property="photo"></nested:hidden>
<html:file property="uploadFile" onchange="selectFile'f1','uploadFile');" style="width: 223px;" />
</td>
</tr>
以上当form提交时,执行相应的后台操作上传便完成了。
下载:在具体的要下载图片的jsp页面中代码如下:
<td width="10%">
照片
</td>
<td align="left" rowspan="8" >
<nested:hidden property="photo" />
<img src="StudentInfo.do? method=showWorkerPicture&id=${StudentInfoForm.saveObject.studentId}" />
</td>
我利用的是在action中写一个没有 forward为空的方法来获取图片的信息。具体代码:
public ActionForward showWorkerPicture(ActionMapping mapping,
ActionForm form, HttpServletRequest request,HttpServletResponse response) {
ActionForward forward = null; Java代码
String studentId = request.getParameter("id");
Long id = Long.parseLong(studentId.trim());
CourseStudentBas condition = new CourseStudentBas();//条件对象
condition.setStudentId(id);
CourseStudentBas pageObject = null; //包含照片信息的队形。
try {
pageObject = this.getStudentInfoService().findById(condition);
byte[] imageBinary = pageObject.getPhoto();
response.setContentType("image/jpeg");
OutputStream outs = response.getOutputStream();
for (int i = 0; i < imageBinary.length; i++) {
outs.write(imageBinary[i]);// 输出到页面
}
outs.flush();
} catch (Exception e) {
return forward;
}
分享到:
相关推荐
通过上述步骤,我们实现了基于SSH2框架和ExtJS前端库的文件上传功能。整个过程涵盖了从前端界面设计到后端处理的完整流程,确保了文件上传操作的安全性和可靠性。这种实现方式不仅适用于简单的文件上传场景,也可以...
在这个"SSH增删改查+分页+图片上传"的项目中,我们将深入探讨这三个框架在实际应用中的结合以及它们如何协同工作来实现数据管理、页面展示和文件上传等功能。 首先,Struts1是一个基于MVC(Model-View-Controller)...
在本文中,我们将探讨如何使用SSH2框架将图片上传到Oracle数据库中,并成功地将其转换成Blob数据存储。同时,我们还将介绍如何在Service层使用事务处理代理,以避免报错。 图片处理思路 在Service层,我们需要使用...
可以是JSON格式的数据,也可以是重定向到一个新的页面显示上传结果。 在实际开发中,你可能还需要考虑其他因素,如安全性(防止恶意文件上传)、性能优化(大文件分块上传、异步上传等)以及用户体验(上传进度显示...
在这个场景中,用户可能希望通过SSH2连接将自己的电影和图片资源上传到个人服务器,以便随时访问。 标签“上传电影图片 ssh2”进一步确认了这个主题是围绕使用SSH2进行文件传输,特别是针对媒体文件(电影和图片)...
在SSH框架中,文件上传功能是常见的需求,特别是在处理用户提交的表单数据时,例如图片、文档或者其他多媒体文件的上传。这个“ssh框架上传文件测试”可能是针对这一功能的一个实践项目或测试案例。 首先,让我们...
在uploadAction类中,我们使用了ServletActionContext来获取HttpServletRequest对象,然后使用FileInputStream和FileOutputStream将图片上传到服务器,并将图片信息保存到数据库中。 知识点5:使用数据库保存图片...
本教程将详细讲解如何在SSH框架下实现文件的上传与下载功能,以及如何在页面上展示上传后的图片文件。 1. **Struts2**:作为MVC框架,Struts2负责处理HTTP请求,定义Action类来处理业务逻辑,并返回相应的结果。在...
7. **安全性**:为了防止恶意文件上传和跨站脚本攻击(XSS),需要对上传的文件类型进行检查,限制只能上传特定类型的文件(如图片、文档等)。同时,对用户输入进行过滤和转义,防止注入攻击。 8. **异常处理**:...
图片上传涉及到文件I/O和文件存储。在SSH项目中,可以使用Struts2的FileUpload插件处理文件上传,将图片保存到服务器的特定目录。需要注意的是,需要处理文件大小限制、格式验证以及错误处理,以保证上传过程的安全...
总之,uploadify与Struts2的集成提供了便捷的前端文件上传体验,结合Struts2的强大后端处理能力,能够实现高效且稳定的图片上传功能。在实际开发中,还需要考虑诸如错误处理、权限控制、文件大小限制等更多细节,以...
通过以上步骤,你可以成功地将图片上传到FTP服务器,并在需要时显示它们。这个过程对于网站管理、数据备份和跨设备共享图片等场景非常有用。记住,根据你的具体需求,可能需要调整这些步骤或使用更高级的功能。
提供的压缩包“图片上传数据库”可能包含了实现这一功能的相关代码和配置文件,包括数据库脚本、服务器端处理脚本、前端页面等。解压后,开发者可以根据文档或示例代码了解具体实现方式。 总结,图片上传到数据库...
- 需要在页面中嵌入必要的HTML元素用于显示上传后的图片和加载状态。 - 示例代码: ```html ;vertical-align:middle;font-size:0px"> ${ctx}/common/images/percenter/default.gif" width="76" height="76...
同时,Web应用程序可能包含JavaScript或Java代码来上传、显示和验证图片。 6. **数据库**:文件列表中的`SQLServerDB`表明项目使用了SQL Server数据库。Hibernate会与SQL Server进行交互,执行CRUD操作,存储和检索...
1. **图片上传与存储**:了解如何通过Struts2上传图片,并将其以Blob形式存储在MySQL数据库中。 2. **图片读取与展示**:掌握如何从数据库中读取图片Blob数据,并将其显示在Web页面上。 #### 开发准备 1. **开发...
在"SSH框架,MYSQL,CKEDITOR配置实现图片上传"这部分,我们可以理解为在CKEditor中集成了图片上传功能,并与MySQL数据库相结合,可能涉及到文件存储路径的配置、数据库表的设计以及后台处理图片上传的Java代码。...
3. **视频文件**:视频文件通常比文本或图片文件大得多,因此在处理视频上传时,需要注意内存管理,防止服务器内存溢出。可以设置临时目录存储上传的文件,然后异步处理或转换它们。 4. **上传过程**:用户在前端...
在JSP页面上显示时,需要从数据库读取该二进制数据,然后转化为图片格式并显示在网页上。 6. **JSP页面**:Java Server Pages(JSP)是Java Web应用中用于创建动态网页的技术。在学生成绩管理系统中,JSP页面负责...
`admin`和`member`可能是不同用户角色的目录,分别存放对应的页面和逻辑。`books`和`image`可能分别用于存储商品信息和商品图片。`sql`目录下的文件可能是数据库脚本,用于创建和初始化数据库表。 在实际开发过程中...