这几天研究了一个struts上传到服务器,然后服务器转存到数据库的例子。直接上代码吧……
要值得注意的是,文件上传到服务器后,其文件名和文件类型会被更改,保持不变的只有文件的文件流……
这是action的代码:
package com.test.action;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import com.test.dao.UploadDAO;
public class UploadAction extends ActionSupport{
private static final long serialVersionUID = -3541943466145372393L;
private static final String LOGIN = "login";
private List<File> files;
public List<File> getFile() {
return files;
}
public void setFile(List<File> file) {
this.files = file;
}
public String execute() throws Exception{
for (File file : files) {
saveFile(file);
}
return "success";
}
private void saveFile(File file) throws IOException, ClassNotFoundException, SQLException{
UploadDAO dao = new UploadDAO();
dao.insertDB(file);
}
public String login(){
return LOGIN;
}
}
dao层的代码:
package com.test.dao;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.test.util.DBConnection;
public class UploadDAO {
public boolean insertDB(File file) throws ClassNotFoundException, SQLException, IOException{
Connection conn = DBConnection.getConnection();
String sql = "insert into imgtest(image) values(?)";
InputStream stream = new FileInputStream(file);
PreparedStatement ps = conn.prepareStatement(sql);
ps.setBinaryStream(1, stream, stream.available());
boolean result = ps.execute();
return result;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- Action所在包定义 -->
<constant name= "struts.multipart.maxSize" value="5242880" />
<package name="fileupload" extends="struts-default" namespace="/">
<action name="upload" class="com.test.action.UploadAction">
<result name="login">/upload-input.jsp</result>
<result name="success">/upload-result.jsp</result>
<!-- 显示配置文件上传拦截器 -->
<interceptor-ref name="fileUpload">
<!--指定特定类型的上传文件 -->
<param name="allowedTypes">image/gif,image/jpeg,image/pjpeg,text/xml,application/vnd.ms-excel</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
</action>
</package>
</struts>
分享到:
相关推荐
使用Struts实现了向MySQL数据库中存储图片的功能。有一些问题没能解决:中文乱码问题,上传图片不能太大等等。虽然不太完善,作为参考还是可以的
在这个实例中,我们将探讨如何在Struts框架下实现图片的上传功能,将图片保存到数据库,并在页面上显示出来。 首先,我们需要创建一个Action类来处理用户上传的图片。这个Action类通常会包含一个方法,如`execute()...
总结起来,"Struts2上传图片存数据库"涉及到的关键技术包括Struts2的文件上传处理、Hibernate的BLOB类型操作、数据库交互以及安全控制。通过这个案例,开发者可以学习到如何将Web应用中的文件操作与数据库存储相结合...
在这个“上传图片到数据库”的简单项目中,我们将深入探讨如何利用Struts2实现图片上传功能,并将其存储到MySQL数据库中,最终实现在页面上展示上传的图片。 首先,我们需要导入两个关键的库:`commons-fileupload-...
在这个特定的项目中,我们看到的是一个关于如何使用Struts实现图片上传、存储到数据库以及在JSP页面显示的过程。以下是相关的知识点详解: 1. **Struts框架**:Struts是Apache软件基金会的一个开源项目,它提供了...
在“struts1上传图片,保存数据库,再显示jsp页面”这个场景中,我们将探讨如何利用Struts1实现文件上传,将图片数据保存到数据库,并在JSP页面上展示。 1. **Struts1的文件上传组件**: Struts1并不直接支持文件...
在"struts2上传图片到Oracle"这个场景中,我们将探讨如何使用Struts2框架实现文件上传,以及如何将这些上传的图片存储到Oracle数据库中。 首先,让我们了解文件上传的基本流程。在Struts2中,我们通常会创建一个...
总结来说,Struts1.2实现图片上传涉及到ActionForm、Action类的配置和实现,以及HTML表单的设计。在实际开发中,还需要考虑文件安全、性能优化等因素。通过熟练掌握这些知识点,我们可以构建出稳定、高效的图片上传...
在这个特定的场景中,我们关注的是如何使用Struts来处理图片的上传和显示。 首先,让我们了解图片上传的过程。在Struts中,我们可以利用`struts2-fileupload`库来实现文件上传的功能。这个库提供了`...
在图片上传的场景中,Struts2提供Action类来接收用户上传的图片文件,同时可以通过配置Struts2的配置文件(struts.xml)来定义Action的映射路径和处理方法,使得前端请求能够正确地路由到后端的处理逻辑。...
在这个"struts1.2 图片上传下载 源代码"中,我们可以学习到如何利用Struts1.2框架来实现这一功能。 首先,我们需要了解Struts1.2中的ActionForm类。ActionForm是模型层与控制器层之间的桥梁,用于接收和封装用户的...
在Struts框架中处理图片上传和下载是常见的需求,这通常涉及到用户界面交互、文件存储、数据库操作等多个环节。本文将深入探讨Struts中图片的上传与下载流程,并结合SQL数据库的使用,为开发者提供实用的指导。 **1...
在"struts2上传图片"这个场景下,我们将深入探讨如何在Struts2框架下实现用户上传图片的功能,并关注网站统计访问量以及防止重复提交的问题。 首先,上传图片是Web应用中常见的功能,它涉及到前端表单设计、后端...
Struts2.0图片上传是Web开发中常见的一项功能,涉及到的主要知识点包括Struts2框架、文件上传处理、IO流操作以及配置文件的设定。在本文中,我们将深入探讨这些内容,帮助你理解和实现Struts2.0环境下的图片上传功能...
在IT行业中,文件上传是一项常见的功能,特别是在Web应用中,用户可能需要上传各种类型的文件,如图片、文档或音频。SSH框架,即Spring、Struts2和Hibernate的组合,是Java Web开发中广泛使用的MVC架构。在这个场景...
在这个“Struts+Hibernate图片上传”程序中,我们将探讨如何结合这两个框架来实现用户上传图片的功能,并将其存储到MySQL数据库。 首先,Struts框架负责处理用户的HTTP请求,提供前端与后端的交互。在图片上传过程...
3. **Spring的参与**:Spring可以通过Service层处理业务逻辑,例如将上传的图片保存到数据库或者特定的文件系统中。同时,Spring的IoC(Inversion of Control)容器可以管理Action类和其他服务类的生命周期。 4. **...
或者使用云存储服务,将图片上传到云服务,数据库中存储URL。 7. **安全性考虑**:在处理用户上传的图片时,要注意防止恶意文件上传,例如病毒或非法内容。可以通过检查文件类型、大小,甚至进行内容扫描来确保安全...
在这个“Struts2+Hibernate实现文件上传”的项目中,我们将探讨如何结合这两个框架来实现在Web应用中上传图片并存储到数据库的过程。 首先,让我们从Struts2的角度来看。Struts2提供了一种灵活的MVC(模型-视图-...
在本项目"struts2+jdbc实现图片的存储与显示(图片存储在数据库内)"中,我们将探讨如何结合这两个技术来处理图片数据,将图片存储到数据库内,并从数据库中检索以供显示。 首先,我们需要了解在数据库中存储图片的...