使用的是将图片保存到服务器,并记录路径名的方式,代码如下:
struts部分:
<form-bean name="upfileForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="filename" type="java.lang.String" />
<form-property name="filedata" type="org.apache.struts.upload.FormFile" />
</form-bean>
<action
attribute="upfileForm"
input="/upload/uploadfile.jsp"
name="upfileForm"
path="/upfile"
scope="request"
validate="true"
type="com.yourcompany.struts.action.UpfileAction">
<forward name="ok" path="/upload/ok.jsp" />
</action>
<action path="/displayimg" type="com.yourcompany.struts.action.DisplayimgAction">
<forward name="ok" path="/upload/displayimg.jsp" />
</action>
public class UpfileAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaActionForm upfileForm = (DynaActionForm) form;// TODO Auto-generated method stub
Image image = new Image();
String strimgname = upfileForm.getString("filename");
image.setImgname(strimgname);
imageDAO.save(image);
FormFile filedata = (FormFile)upfileForm.get("filedata");
ServletContext servletContext = this.getServlet().getServletContext();
String filePath = servletContext.getRealPath("/");
try {
InputStream stream = filedata.getInputStream();
OutputStream bos = new FileOutputStream(filePath + "/image/" + filedata.getFileName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.close();
stream.close();
}catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mapping.findForward("ok");
}
private ImageDAO imageDAO;
public void setImageDAO(ImageDAO dao){
this.imageDAO = dao;
}
}
public class DisplayimgAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
List results = imageDAO.findAll();
if(results!=null){
HttpSession session=request.getSession();
session.setAttribute("results",results);
return mapping.findForward("ok");
}return mapping.findForward("fail");
}
private ImageDAO imageDAO;
public void setImageDAO(ImageDAO dao){
this.imageDAO = dao;
}
}
ImageDAO.java
public void save(Image transientInstance) {
Session session =this.getSession();
Transaction tx = null;
tx = session.beginTransaction();
session.save(transientInstance);
tx.commit();
session.evict(transientInstance);
}
public List findAll() {
Session session =this.getSession();
Query query = session.createQuery("from Image");
return query.list();
}
displayimg.jsp
<logic:iterate id="element" name="results">
<tr>
<td width="100"><bean:write name="element" property="id"/> </td>
<td width="100"><img src="image/<bean:write name='element' property='imgname'/>"/></td>
</tr>
</logic:iterate>
uploadfile.jsp
<html:form action="/upfile" enctype = "multipart/form-data">
filename : <html:text property="filename"/><html:errors property="filename"/><br/>
filedata : <html:file property="filedata"/><html:errors property="filedata"/><br/>
<html:submit/><html:cancel/>
</html:form>
<!-- u-f8 filter -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
分享到:
相关推荐
- **提交结果处理**:根据后端返回的结果显示成功或失败消息,并执行相应操作。 #### 三、后端实现 ##### 1. Struts.xml配置 **目标**:配置Struts2拦截器,指定文件上传处理的Action类。 **配置示例**: ```...
在这个场景下,我们将讨论如何使用SSH框架来实现文件上传,并将上传记录存储到数据库中。 首先,我们需要了解SSH框架的基本概念。Spring负责应用的依赖注入和事务管理,Struts2作为控制器处理HTTP请求,而Hibernate...
浏览器或其他接收方将这个数据流解释为图片并显示出来。 6. **性能优化**:由于图片数据通常较大,直接存储和读取可能会对数据库性能产生影响。因此,实践中可能还会涉及一些优化策略,如使用文件系统存储图片,只...
5. **uppic.jsp**:这个文件可能与上传图片有关,用户可以通过此页面选择并上传图片到服务器。 6. **showpic.jsp**:类似showmovie.jsp,它可能用于显示已上传的图片,用户可以预览和管理他们的图片集合。 7. **...
本项目利用SSH(Spring、Struts2和Hibernate)框架实现上传图片并即时显示的功能,这为我们提供了一个理解Web应用程序开发中文件上传处理的实例。 首先,Spring框架作为核心的依赖注入(DI)和面向切面编程(AOP)...
SSH框架实现表单上传图片实例代码是指利用SSH框架实现表单上传图片的功能,通过在HTML表单中添加上传控件,用户可以选择要上传的图片,点击上传按钮,图片将被上传到服务器,然后显示在页面上。 知识点1:HTML表单...
需要注意的是,为了提供良好的用户体验,可以显示上传进度,并处理可能的错误情况。 总的来说,SSH框架用Struts2+Hibernate实现图片的上传,需要整合前端和后端的技术,包括Struts2的Action处理、Hibernate的数据库...
在SSH项目中,可以使用Struts2的FileUpload插件处理文件上传,将图片保存到服务器的特定目录。需要注意的是,需要处理文件大小限制、格式验证以及错误处理,以保证上传过程的安全和稳定。 通过这个入门项目,初学者...
在本文中,我们将探讨如何使用SSH2框架将图片上传到Oracle数据库中,并成功地将其转换成Blob数据存储。同时,我们还将介绍如何在Service层使用事务处理代理,以避免报错。 图片处理思路 在Service层,我们需要使用...
对于图片上传,Spring和Hibernate可以配合处理文件的存储,例如将文件保存在服务器的文件系统或云存储服务中,并将文件路径或URL存储在数据库中。 在分页功能的实现上,开发者通常会结合Hibernate的Criteria API或...
综上所述,实现基于SSH框架的文件上传下载及图片显示涉及多个层面的技术,包括SSH框架的整合、文件存储策略、前端交互以及安全性和性能优化。掌握这些知识点,可以让你在JavaWeb开发中更加游刃有余。
在SSH框架中,文件上传功能是常见的需求,特别是在处理用户提交的表单数据时,例如图片、文档或者其他多媒体文件的上传。这个“ssh框架上传文件测试”可能是针对这一功能的一个实践项目或测试案例。 首先,让我们...
7. **安全性**:为了防止恶意文件上传和跨站脚本攻击(XSS),需要对上传的文件类型进行检查,限制只能上传特定类型的文件(如图片、文档等)。同时,对用户输入进行过滤和转义,防止注入攻击。 8. **异常处理**:...
在服务器端,处理图片并添加文字水印后保存,返回带有水印的新图像URL。在客户端,可以通过调整CSS样式,使用绝对定位在图片上动态添加文字水印,但这仅限于视觉效果,无法防止图片被复制。 **图片水印**与文字水印...
该插件的一大亮点在于其支持多文件选择、上传进度显示以及错误处理机制,使得用户能够方便地监控上传进度,并在出现问题时及时得到反馈。 接下来,我们谈谈Struts2,这是一个Java Web开发框架,它提供了模型-视图-...
在本项目"ssh嵌入flex实现在线拍照,并付图片预览"中,我们将探讨如何整合这两者来实现一个功能,让用户能够在Web端进行在线拍照并实时预览图片。 首先,SSH框架中的Spring作为依赖注入和控制反转的容器,负责管理...
### SSH + AJAX 无刷新上传图片技术解析 #### 一、引言 在现代Web开发中,用户体验至关重要。为了提供更流畅的操作体验,无刷新上传图片成为了一个热门话题。本文将详细探讨如何利用SSH(Spring、Struts2、...
通过以上步骤,你可以成功地将图片上传到FTP服务器,并在需要时显示它们。这个过程对于网站管理、数据备份和跨设备共享图片等场景非常有用。记住,根据你的具体需求,可能需要调整这些步骤或使用更高级的功能。
同时,Web应用程序可能包含JavaScript或Java代码来上传、显示和验证图片。 6. **数据库**:文件列表中的`SQLServerDB`表明项目使用了SQL Server数据库。Hibernate会与SQL Server进行交互,执行CRUD操作,存储和检索...
- 当需要显示图片时,前端通过HTTP GET请求向服务器请求图片数据。服务器根据数据库中的信息找到图片文件,返回给客户端。 - 鉴权与权限控制:在实际应用中,图片访问可能需要验证用户权限。这可以通过设置HTTP头...