java在jsp将图片获取存到数据库(java将图片存入数据库)
更新:2022-11-08 12:47
本文目录一览:
- jsp中 怎么把图片直接存入数据库中,最好有例子
- 在JSP中怎样将图片上传到数据库中
- 我怎么用jsp技术将图片存到数据库中去呀??
- 用jsp、java实现上传图片,保存到数据库,从数据库中提取,显示到页面 这四步 我想问第一步,怎么上传图片
- java如何将图片保存在数据库中
jsp中 怎么把图片直接存入数据库中,最好有例子
首先,可以选择Apache里面的upload包,这个是把文件传到服务器上的上传组件。然后是存到数据库里,那就要看你用什么数据库了。比如Oracle,就是Blob类型;至Access,就是对象字段。存取方法都是不一样的,要分别对待。
有一个通用方法:你找到图片文件之后,建立输入流,然后创建ByteArrayOutputStream
,然后从输入流中读字节到后面那个流中,并从中产生字节数组保存到byte字段中。
其实建议你不要将图片直接上传到数据库。图片上传到数据库要用到BLOB
大对象(以Oracle为例),这样会影响程序性能。你可以将图片上传到指定文件夹,同时将图片保存的路径+文件名上传到数据库,要显示就读取这个路径找到图片,然后显示。刚做了个这个代码。
在JSP中怎样将图片上传到数据库中
到数据库? 你可以建一个文件夹来保存上传的图片,然后将图片的文件名保存到数据库中。要用的时候再根据图片的文件名到该文件夹下面去读取显示出来。
我怎么用jsp技术将图片存到数据库中去呀??
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@page import="java.io.*" %>
<%@page import="java.util.*" %>
<%@ page import = "database_connection.sun_wap_refresh_conn" %>
<jsp:useBean id="myconn1" class="database_connection.sun_wap_refresh_conn" scope="session"/>
<jsp:setProperty name="myconn1" property="*"/>
<%
//上一行的 jsp:useBean id="myconn11" id 不能有重复
myconn1.getConn();
CallableStatement cstmt = null;
Statement stmt = myconn1.conn.createStatement();
String url = "";
String flag = "";
String procedure = "";
String id = "";
url = request.getParameter("url");
flag = request.getParameter("flag");
id = request.getParameter("id");
ResultSet rs = null;
if (flag != null) {
if (flag.compareTo("add") == 0) {
BufferedInputStream data;
BufferedInputStream is;
int FormSize;
byte[] bb;
byte t;
String image = "";
data = new BufferedInputStream(request.getInputStream());
FormSize = request.getContentLength();
int i = 0, start1 = 0, start2 = 0, _start1 = 0, _start2 = 0;
String temp = "";
String _temp = "";
String boundary = "";
is = new BufferedInputStream(data);
bb = new byte[FormSize];
while (i < FormSize) {
t = (byte) is.read();
bb[i] = t;
i++;
}
is.close();
temp = new String(bb, "ISO8859_1");
_temp = temp;
_start1 = _temp.indexOf("boundary=");
_temp = _temp.substring(_start1 + 9);
_start2 = _temp.indexOf("\r\n");
boundary = _temp.substring(0, _start2);
_start1 = _temp.indexOf(boundary);
_temp = _temp.substring(_start1 + boundary.length());
_start1 = _temp.indexOf(boundary);
image = _temp.substring(0, _start1);
_temp = _temp.substring(_start1 + boundary.length());
_start1 = image.indexOf("\r\n\r\n");
_start2 = image.lastIndexOf("\r\n");
image = image.substring(_start1 + 4, _start2);
procedure = "{call sun_insert_ad_pic_image(?,?)}";
cstmt = myconn1.conn.prepareCall(procedure);
cstmt.setString(1, url);
cstmt.setBytes(2, image.getBytes("ISO8859_1"));
cstmt.executeUpdate();
}
if (flag.compareTo("del") == 0) {
procedure = "{call sun_delete_ad_pic_image(?)}";
cstmt = myconn1.conn.prepareCall(procedure);
cstmt.setInt(1, Integer.parseInt(id));
cstmt.executeUpdate();
}
}
procedure = "{call sun_select_ad_pic_image(?)}";
cstmt = myconn1.conn.prepareCall(procedure);
cstmt.setString(1, url);
rs = cstmt.executeQuery();
%>
<script language="javascript">
function del(id) {
location.replace("edit_keyword_pic.jsp?flag=delurl=<%=url%>&id=" + id);
}
</script>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#B6EF07">
<tr>
<td width="20%" bgcolor="#FFFFFF">ID</td>
<td width="60%" bgcolor="#FFFFFF">图片</td>
<td width="20%" bgcolor="#FFFFFF">操作</td>
</tr>
<% while (rs.next()) {
String _id = rs.getString("id");
%>
<tr>
<td width="20%" bgcolor="#FFFFFF"><%=_id%></td>
<td width="60%" bgcolor="#FFFFFF"><img src="wc1.jsp?id=<%=_id%>"/></td>
<td width="20%" bgcolor="#FFFFFF"><input type="button" onclick="del('<%=_id%>')" value="删除"/></td>
</tr>
<% } %>
</table>
<form name="form1" action="edit_keyword_pic.jsp?flag=addurl=<%=url%>" method="post" enctype="multipart/form-data">
<input type="file" name="image"/><input type="submit" value="上传"/>
</form>
用jsp、java实现上传图片,保存到数据库,从数据库中提取,显示到页面 这四步 我想问第一步,怎么上传图片
用 jspSmartUpload
组件来实现,用 jsp + servlet 在 Servlet 里实现的代码:
PrintWriter out = response.getWriter();
int count = 0;
// 实例化上传控件对象
SmartUpload su = new SmartUpload();
// 初始化操作
su.initialize(config, request, response);
// 设置上传文件最大字节数
su.setTotalMaxFileSize(100000);
try {
// 禁止上传指定扩展名的文件
su.setDeniedFilesList("ext,bat,jsp");
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
// 上传文件到服务器
su.upload();
File fileup = new File(request.getRealPath("upload"));
if (!fileup.exists()) {
// 创建目录
fileup.mkdir();
}
// 处理多个文件的上传
for (int i = 0; i < su.getFiles().getCount(); i++) {
com.jspsmart.upload.File file = su.getFiles().getFile(i);
if (!file.isMissing()) { // 如果文件有效
// 保存文件到指定上传目录
file.saveAs("/upload/new." + file.getFileExt(), su.SAVE_VIRTUAL);
count = su.save("/upload");
}
}
} catch (SmartUploadException e) {
e.printStackTrace();
}
out.println(count + " file(s) uploaded");
如果你对这个上传组件不了解,最好是先去查查用法。 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快! vaela
java如何将图片保存在数据库中
一般都是这样的,就是在你服务器有一个专门放置图片的文件夹,然后数据库保存的是你服务器图片的路径。需要用的时候就去数据库里面取路径。得到路径以后你想怎么处理图片是你的事情了。 至于如何去数据库取路径这个就是简单的db操作。 加载驱动类:
Class.forName(DBDriver);
获取连接:
Connection conn = DriverManager.getConnection(url, username, password);
创建操作对象:
PreparedStatement stmt = con.prepareStatement(sql);
执行操作:
ResultSet rs = stmt.executeQuery();
遍历结果:
List list = new ArrayList();
while (rs.next()) {
// 具体操作,通常用rs.getString(name)取值
Image img = new Image(); // 图片类对应你数据库中图片表格
img.setSrc(rs.getString("src")); // 假设你数据库中image表中图片地址字段是src
list.add(img);
}
记得关闭资源:
rs.close();
stmt.close();
con.close();
看你的意思是已经取出来了不知道怎么显示: 你取出来之后可以把图片放在一个list里面然后去页面上遍历这个list
<c:forEach var="chakan1" items="list">
<tr>
<td><img src="${chakan1.src}"/></td>
</tr>
</c:forEach>
大致应该是这样。