随着互联网的快速发展,图片成为了传递信息和表达情感的重要工具。当我们需要将图片上传到网站时,使用数据库进行存储已成为常见的方法。本文将介绍如何使用Struts框架实现图片上传并将其存入数据库。
一、环境搭建
我们需要搭建一个基本的开发环境。以下是所需的软件和工具:
– JDK 1.8或以上
– Eclipse IDE
– Struts 2框架
在完成安装和配置后,我们可以开始编写我们的程序。
二、编写代码
1.创建项目
在Eclipse中创建一个新的动态Web项目,并将它命名为“StrutsImageUpload”。
2.添加Struts配置文件
在src目录下创建一个名为“struts.xml”的Struts配置文件。在该文件中添加以下内容:
image/jpeg,image/png,image/gif
/result.jsp
/error.jsp
该配置文件包含了一个Struts动作“ImageUploadAction”,该动作接收上传的文件,并存储它们。
3.添加Struts动作
在src目录下创建一个名为“ImageUploadAction.java”的类,该类实现了Struts的Action接口,并定义了一个名为“save”的方法,用于存储上传的文件到数据库中。代码如下:
package com.struts.action;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;

@Action(“upload”)
@InterceptorRef(“defaultStack”)
@Results({
@Result(name=”success”, location=”/result.jsp”),
@Result(name=”error”, location=”/error.jsp”)
public class ImageUploadAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private File fileUpload;
private String fileUploadContentType;
private String fileUploadFileName;
public String save() {
byte[] fileBytes = null;
fileBytes = FileUtils.readFileToByteArray(fileUpload);
} catch (Exception e) {
e.printStackTrace();
if (fileBytes != null) {
//存储文件到数据库
return SUCCESS;
return ERROR;
public File getFileUpload() {
return fileUpload;
public void setFileUpload(File fileUpload) {
this.fileUpload = fileUpload;
public String getFileUploadContentType() {
return fileUploadContentType;
public void setFileUploadContentType(String fileUploadContentType) {
this.fileUploadContentType = fileUploadContentType;
public String getFileUploadFileName() {
return fileUploadFileName;
public void setFileUploadFileName(String fileUploadFileName) {
this.fileUploadFileName = fileUploadFileName;
该类定义了一个名为“fileUpload”的属性,它用于接收上传的文件。在“save”方法中,我们使用“FileUtils”类将上传的文件转换为字节数组,并将字节数组存储到数据库中。
4.添加数据库访问类
创建一个名为“DatabaseAccess.java”的类,用于连接和操作数据库。以下是该类的代码:
package com.struts.util;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class>服务器上传文件。以下是该文件的代码:
Image Upload
在WebContent目录下创建一个名为“result.jsp”的文件,该文件用于显示图片。以下是该文件的代码:
Image Result
6.配置web.xml
在WebContent/WEB-INF目录下创建一个名为“web.xml”的文件,并将以下内容添加到该文件中:
org.apache.struts2.dispatcher.ng.servlet.StrutsServlet
actionPackages
com.struts.action
三、测试
现在我们已经完成了所有的代码编写和配置工作,可以启动Tomcat服务器并测试我们的应用程序。输入以下网址访问应用程序:。上传一幅图片,系统会将其存储到数据库中,并显示在result.jsp页面中。
四、
在本文中,我们使用Struts 2框架实现了图片上传功能,并将上传的图片存储到数据库中。我们的代码可以轻松地扩展以支持其他类型的文件上传,并对数据库访问进行细微的调整。我们希望这篇文章能帮助你快速掌握如何使用Struts框架实现图片上传及数据库操作。
相关问题拓展阅读:
求java把图片写入mysql数据库的代码!
这个。。。自己难道搜不到吗?给个地址,去看吧,我就不粘贴了
我这里给你介绍下在struts框架下的图片上传的三步。
1、在pojo里,把图片字段设置为byte类型
private byte image;
2、如果是采用struts的话,只需要
.setImage(formbean.getImage().getFileData());
前提是定义一个formbean类,使用getFileData()方法将图片类型转化为byte类型。
3、在前台页面里这样,上传图片的控件名称为image,类型为file.
首先,建立数据库(主意image的数据类型):
CREATE TABLE image (
id int(5) NOT NULL,
name varchar(25) default NULL,
photo blob,
PRIMARY key (`id`)
以下是Java Code:
Connection conn = DriverManager.getConnection(“jdbc: “root”, “root”);
String INSERT_PICTURE = “insert into image (id, name, photo) values (?, ?, ?)”;
FileInputStream fis = null;
PreparedStatement ps = null;
conn.setAutoCommit(false);
File file = new File(“myPhoto.png”);
fis = new FileInputStream(file);
ps = conn.prepareStatement(INSERT_PICTURE);
ps.setString(1, “001”);
ps.setString(2, “name”);
ps.setBinaryStream(3, fis, (int) file.length());
ps.executeUpdate();
conn.commit();
ps.close();
fis.close();
真没这样干过。。。
不过按他们说的。存二进制肯定是可以的。。
再把这流的二制制还复回图象
把图片变成2进制文件再存
struts 上传图片到数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于struts 上传图片到数据库,Struts实现图片上传数据库操作方法,求java把图片写入mysql数据库的代码!的信息别忘了在本站进行查找喔。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
struts2+Hibernate上传图片,如何实现图片可以放在服务器上;数据库保存图片路径。
楼主struts2上传代码会写吗?
struts2本身提供了上传拦截器,用struts2实现上传功能,并获得保存地址
获得文件存储地址(上传时指定)+文件名
调用保存方法(Hibernate),将文件路径存入数据库
在一个事务中完成即可!
如:有哪块有难点,及时追问。good luck!
Spring框架中配置bean的高级属性"props"是什么作用?
PROPAGATION_REQUIRED意思是支持当前事务,如果当前没有事务,就新建一个事务。 insert*意思是对所有以insert开头的方法应用事务控制。 list, set, map和props元素分别用来设置类型为List,Set,Map和Propertis的属性值,分别用来为bean传入集合值
struts2实现图片的上传和下载
import ; import ; import ; import .*; import .*; import ; import ; /** * */ public class UploadFileHandler { private static int BUFFER_SIZE = 8192; /** * 上传附件操作 传递参数:系统参数配置设置的参数名称 */ @SuppressWarnings(unchecked) public static List
发表评论