`

用jsp上传图片文件,存贮到字段类型为blob的流形式代码

阅读更多
向Mssql数据库写入image代码的程序,所以我在这在写一下用jsp怎样向数据库写入图像文件。大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的
  只要大家将连接数据库的参数改一下就可以了。
SQL>create table image(id int,content varchar(200),image blob);
  如果在sqlserver2000的数据库中,可以将blob字段换为image类型,这在SqlServer2000中是新增的。
  testimage.html文件内容如下:
<HTML>
<HEAD>
<TITLE>Image File </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<FORM METHOD=POST ACTION="testimage.jsp">
<INPUT TYPE="text" NAME="content"><BR>
<INPUT TYPE="file" NAME="image"><BR>
<INPUT TYPE="submit"></FORM>
<BODY>
</BODY>
</HTML>

  我们在Form的action里定义了一个动作testimage.jsp,它的内容如下:
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%> 
    <html> 
    <body> 
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    String url="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding=8859_1"; 
//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改 
    Connection conn= DriverManager.getConnection(url); 
String content=request.getParameter("content");
String filename=request.getParameter("image");
FileInputStream str=new FileInputStream(filename);
String sql="insert into test(id,content,image) values(1,?,?)";
PreparedStatement pstmt=dbconn.conn.prepareStatement(sql);
pstmt.setString(1,content);
    pstmt.setBinaryStream(2,str,str.available());
  pstmt.execute();
  out.println("Success,You Have Insert an Image Successfully");
%>

下面我写一个测试image输出的例子看我们上面程序写的对不对,testimageout.jsp的内容如下:
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%> 
<html>
<body>
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    String url="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding=8859_1"; 
//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改 
    Connection conn= DriverManager.getConnection(url); 
String sql = "select image from test where id=1";
   Statement stmt=null;
   ResultSet rs=null;
   try{
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql);
   }catch(SQLException e){}
   try {
   while(rs.next()) {
    res.setContentType("image/jpeg");
    ServletOutputStream sout = response.getOutputStream();
    InputStream in = rs.getBinaryStream(1);
    byte b[] = new byte[0x7a120];
    for(int i = in.read(b); i != -1;)
      {
        sout.write(b);
        in.read(b);
      }
      sout.flush();
      sout.close();
    }
   }
   catch(Exception e){System.out.println(e);}
  %>
  </body>
  </html>
  你运行这个程序,你就会看到刚才你写入美丽的图片就会显示在你面前。怎么样,用jsp来试试。
  这种方法把图片写到数据库中会使数据库在短时间内容量飞涨,会影响性能的,另外一种做法将图片存上传到服务器上,
  在数据库里只存放图片的路径,这是一个很好的方法。我建议大家采取后面一种方法。
分享到:
评论
2 楼 geeksun 2009-01-14  
pstmt.setString(1,content);
    pstmt.setBinaryStream(2,str,str.available());
这一句有问题
1 楼 snakeaiyu 2008-08-05  
程序有问题!

相关推荐

    文件上传至oracle blob字段的java实现

    指定文件夹下的所有文件上传至oracle的blob字段,java实现

    kettle通过java代码将数据库blob 字段抽取到本地文件

    kettle通过java代码将数据库blob 字段抽取到本地文件

    jsp操作mysql数据库的blob字段

    在这个场景中,我们关注的是如何使用Java Server Pages(JSP)来操作MySQL数据库中的Blob(Binary Large Object)字段,这是一个用于存储大容量二进制数据如图片、文档或音频文件的特殊字段类型。以下是关于这个主题...

    jsp实现向oracle中blob字段上传附件

    JSP(JavaServer Pages)是一种用于创建动态网页的技术,而Oracle数据库是广泛应用的关系型数据库管理系统,支持多种数据类型,包括BLOB(Binary Large Object),用于存储大块二进制数据,如图片、文档或视频。...

    常用文件流下载文件( Blob)时各种类型文件的 type

    常用文件流下载文件( Blob)时各种类型文件的 type

    判断blob字段是否为空

    在数据库管理与应用开发中,处理BLOB(Binary Large Object)类型字段是一项常见的需求,尤其是在存储大量二进制数据如图像、音频或视频文件时。本文将深入探讨如何判断一个BLOB字段是否为空,这是一个在数据库操作...

    批量导出ORACLE数据库BLOB字段生成图片

    批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将数据库中的图片资源导出到本地文件系统的情况。下面将详细介绍这一过程及其相关知识点。 首先,我们需要理解BLOB类型。BLOB...

    delphi读写BLOB字段

    delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段...

    sql server字段保存文件,blob操作

    这里我们主要关注如何使用SQL Server中的特定字段类型来存储文件,并结合Delphi进行操作。在SQL Server 2000及之前版本中,用于存储BLOB数据的字段类型是`image`,而在2005及以上版本中,这个角色由`varbinary(MAX)`...

    将文件上传、下载(以二进制流保存到数据库)实现代码

    然后将这个二进制流保存到数据库中,通常是保存到一个BLOB(二进制大对象)类型的字段中。 2. 文件下载:当用户需要下载文件时,后端从数据库中读取对应文件的二进制流,然后将其转换成文件格式,并通过Web服务器...

    java,Blob字段操作,将图片或者文件保存到数据库中.zip

    在Java编程中,Blob(Binary Large Object)是用于存储大量二进制数据的数据类型,常被用在数据库中保存图片、文件等非文本信息。本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库...

    jQuery缩略图和blob的jsp代码

    当用户上传图片时,JSP页面可以接收文件,将其转换为Blob对象,然后存储到Oracle数据库的Blob字段中。在查询时,可以从数据库检索Blob数据,转换回图片格式,并在页面上显示。 图片的上传与显示通常涉及前端和后端...

    基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案.pdf

    该方案使用JSP技术读取ORACLE数据库中的BLOB字段存储的坐标点,然后将坐标传递到JAVA类中显示图形。在图形的正中还显示了编号,充分展示了JSP结合JAVA应用的优势。 知识点1:JSP技术的应用 * JSP(Java Server ...

    java file upload BLOB

    - 使用 `PreparedStatement` 设置参数值,对于 BLOB 类型的字段,使用 `setBlob` 方法设置为空的 BLOB 对象。 - 最后,执行插入操作,并关闭数据库连接。 #### 注意事项: - 在处理 BLOB 数据时,需要注意资源...

    Oracle blob字段上传下载

    ### Oracle Blob字段上传与下载详解 #### 一、概述 在数据库系统中,二进制大对象(Binary Large Object,简称BLOB)是一种用于存储大量二进制数据的数据类型,例如图像、音频或视频文件等。Oracle数据库支持Blob...

    oracle中的BLOB(照片)转换到mysql中

    总结来说,从Oracle的BLOB类型字段中提取并转换到MySQL的过程涉及到查询、导出、上传等多个步骤。在实际操作中,需要对数据库API有深入理解,并注意数据的兼容性和性能优化。通过以上方法,你可以顺利地在两个数据库...

    批量导出ORACLE数据库BLOB字段生成文件

    本教程将详细讲解如何批量导出Oracle数据库中的BLOB字段并生成文件,适用于需要定期或一次性处理大量图片或其他BLOB数据的场景。 首先,确保你已经在本地安装了Oracle客户端。Oracle客户端提供了SQL*Plus和其他工具...

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片)

    本示例主要涉及的是如何将图片通过BASE64编码加密后存入数据库的Blob类型字段,并能从数据库中取出这些数据再还原成原始图片。以下是相关知识点的详细说明: 1. **BASE64编码**:BASE64是一种用于将二进制数据转换...

    jsp 上传图片并保存到数据库里的servlet代码和jsp代码

    本主题将深入探讨如何使用JSP和Servlet来实现一个图片上传功能,并将图片数据存储到Oracle数据库中。 首先,我们需要理解JSP和Servlet的角色。JSP是用于创建动态内容的视图层技术,而Servlet则是Java编写的应用程序...

    从mysql数据库中批量下载Blob图片到本地

    本教程将深入探讨如何在Java环境下,批量地从MySQL数据库中下载存储在Blob字段中的图片,并将其保存到本地文件系统。 首先,我们需要理解Blob类型。Blob是MySQL中的一个数据类型,用于存储大量二进制数据。它分为四...

Global site tag (gtag.js) - Google Analytics