struts2上传图片怎么保存到数据库中

 我来答
chris_strive
2012-03-18 · TA获得超过350个赞
知道小有建树答主
回答量:658
采纳率:100%
帮助的人:412万
展开全部
1、在实际开发中,图片一般是上传到图片服务器上,而数据库保存路径。struts2使用upload拦截器可以直接取到图片路径,处理后保存到数据库就行了。
2、对于一些需要保存到数据库的图片,可以使用大文本字段(clob或blob)。方法一般都是使用字节流将图片写入数据库。
老实人yong
2013-03-12 · 超过12用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:24.4万
展开全部
定义一个private File adImage;
在页面input框中有一个name=“adImage”属性,用于上传图片,adImage在数据库中的类型为clob或者是blob类型的,
if(adImage != null){
FileInputStream inputStream = new FileInputStream(adImage);
oldAd.setAdImage(Hibernate.createBlob(inputStream));
}
这里的oldAd是实体类,也就是需要上传的数据表对应的实体类,这样就可以把图片存到数据库。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郭某人来此
2015-09-30 · TA获得超过1645个赞
知道答主
回答量:952
采纳率:100%
帮助的人:90万
展开全部
数据库保存的是该文件的一些信息,文件保存在服务器指定的目录里。

Struts2文件上传保存到数据库中,可以用Fileupload组件。

----------------------struts2文件上传实例如下----------------

package com.ssh.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {

private String username;

private String password;

private File file;

private String fileFileName;

private String fileContectType;

public File getFile() {
return file;
}

public void setFile(File file) {
this.file = file;
}

public String getFileContectType() {
return fileContectType;
}

public void setFileContectType(String fileContectType) {
this.fileContectType = fileContectType;
}

public String getFileFileName() {
return fileFileName;
}

public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String execute() throws Exception {

InputStream is = new FileInputStream(file);

String root = ServletActionContext.getRequest().getRealPath("/upload");

File destFile = new File(root,this.getFileFileName());

OutputStream os = new FileOutputStream(destFile);

byte[] buffer = new byte[400];

int length = 0;

while((length=is.read(buffer)) > 0)
{
os.write(buffer);
}

is.close();

os.close();

return SUCCESS;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
36557832
2012-03-18 · TA获得超过11.4万个赞
知道顶级答主
回答量:7万
采纳率:1%
帮助的人:4.6亿
展开全部
上传的时候,可以用struts上传的方法。把你上传到 文件传到tomcat服务器,然后图片名称传到数据库。当你取图片的时候,先去数据库中取图片的名称,然后到服务器中找到对应的图片。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
568145421
推荐于2016-09-23 · 知道合伙人软件行家
568145421
知道合伙人软件行家
采纳数:1353 获赞数:6756

向TA提问 私信TA
展开全部
你好,常见的开发中是不保存图片的,只保存他的路径,不然太浪费数据库空间了,而且影响性能,你要是非要保存,数据库提供了两个类型CLOB,BLOB。这就是保存大文本,图片,电影的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式