数据库表中的图片是什么类型

数据库表中的图片是什么类型,第1张

数据库表中的图片是image类型。

数据库表中的Image数据类型可以进行数据图片的存储。保存的是二进制字节,所以写入数据库Image数据类型时,数据库自动将图片转换成二进制字节后存入。从数据库Image数据类型读取内容时,则是将二进制字节先转换成图片,再输出。

扩展资料:

如果SQL Server是缺省安装时, IMAGE类型字段是有长度限制,用来存储图片大小不超过2g的图片。缺点是占用了很大的数据存储空间。但是对于之前的存储物理路径来说读取图片和存储图片方便了很多。

IMAGE类型字段如果写入的数据超过长度限制就会抛出异常,缺省的长度限制是65536,需要修改数据库的全局配置参数才可以扩大IMAGE类型字段的存储空间。

mysql数据库是可以存储图片的, *** 作方法:

1、具体的脚本代码如下,其中我们假定文件上传域的名称为Picture;

2、这样,我们就可以成功的把图片保存到数据库中。如果在将图片插入MySQL的过程中出现问题,可以检查一下MySQL数据库所允许的最大数据包的大小。如果设置值过小的话,我们会在数据库的错误日志中找到相应的记录;

3、提取图片方法:编写两个文件。其中,第一个文件作为HTML页面的模板,定位图片的显示位置。第二个文件则被用来从数据库中实际输出文件流,作为<IMG>标签的SRC属性;

4、当HTML页面被浏览时,每显示一副图片就会调用一次Second.php3文件。当第二个文件被调用时会传入相应的Picture ID,我们可以借此从数据库中取回对应的图片并显示。

在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况。一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦。但有些时候,向MySQL中插入图片更加容易管理。

我把你的代码稍微改造了下,我这边是可以显示图片的。代码如下:

数据库 *** 作部分:

package com.database

import java.io.InputStream

import java.sql.*

/**

 * @作者 王建明

 * @创建日期 13-10-7

 * @创建时间 下午12:32

 * @版本号 V 1.0

 */

public class DataBaseUtil {

public static InputStream getImageStreamFromDataBase() {

Connection conn = null

try {

Class.forName("com.mysql.jdbc.Driver")

conn =

DriverManager.getConnection("jdbc:mysql://localhost/quickstart", "root", "123456")

Statement stmt = conn.createStatement()

String sql = "select book_image from tbl_book where id=1 "

ResultSet rs = stmt.executeQuery(sql)

if (rs.next()) {

return rs.getBinaryStream("book_image")

}

} catch (Exception e) {

System.out.println("出现异常: " + e.getMessage())

} finally {

try {

if (conn != null)

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}

}

return null

}

}

servlet部分:

package com.servlet

import com.database.DataBaseUtil

import javax.servlet.ServletException

import javax.servlet.http.HttpServlet

import javax.servlet.http.HttpServletRequest

import javax.servlet.http.HttpServletResponse

import java.io.IOException

import java.io.InputStream

import java.io.OutputStream

/**

 * @作者 王建明

 * @创建日期 13-10-7

 * @创建时间 下午12:18

 * @版本号 V 1.0

 */

public class ShowImage extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response)

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

InputStream in = DataBaseUtil.getImageStreamFromDataBase()

OutputStream toClient = response.getOutputStream()

response.reset()

response.setContentType("image/jpg")//或gif

int len = 10*1024*1024

byte[] P_Buf = new byte[len]

int i

while((i = in.read(P_Buf)) != -1){

toClient.write(P_Buf, 0, i)

}

in.close()

toClient.flush()

toClient.close()

}

}

web.xml中的servlet配置:

    <servlet>

        <servlet-name>ShowImage</servlet-name>

        <servlet-class>com.servlet.ShowImage</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>ShowImage</servlet-name>

        <url-pattern>/showImage</url-pattern>

    </servlet-mapping>

页面中加载图片方式:

<img src="showImage" />

希望对你有帮助O(∩_∩)O~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9952686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存