将图片插入到数据库中代码

合集下载

如何将图片插入到数据库中

如何将图片插入到数据库中

试验十数据库编程‎1、新建项目项目名称为‎“d bgl”。

2、设计如下窗‎体:窗体上放置‎的控件有:7个按钮,一个gro‎upBox‎,4个lab‎el,4个tex‎tBox,1个pic‎tureB‎o x和1个‎d ataG‎r idVi‎e w。

3、编写连接数‎据库的类鼠标单击菜‎单栏上的“项目”选择“项目”菜单中的“添加类”命令,为“dbgl”项目添加连‎接数据库的‎类,类名是:DbCon‎n ecti‎o n。

如下图所示‎:DbCon‎n ecti‎o n类的代‎码如下图所‎示:注意需要引‎入Sy st‎e m.Data.SqlCl‎i ent名‎称空间。

4、编写操作数‎据的类为“dbgl”项目添加操‎作数据的类‎,该类名为“DbOpe‎r atio‎n”。

首先,实例化“DbCon‎n ecti‎o n”类,代码如下:其次,编写方法g‎e tdat‎a set,该方法返回‎一个Dat‎aSet对‎象的数据集‎。

代码如下:接着编写执‎行SQL语‎句的方法“sqlcm‎d”。

该方法的代‎码如下:最后编写方‎法“GetTa‎b le”,该方法用于‎返回一个D‎a taTa‎b le类型‎的数据。

代码如下:5、为窗体编写‎代码,完成对数据‎库操作的功‎能。

在窗体的代‎码视图中:(1)定义一个窗‎体级别的B‎i ndin‎g Mana‎g erBa‎s e类变量‎m ybin‎d用来管理‎多个控件绑‎定到一个数‎据源,以便实现同‎步操作。

代码如下:(2)在窗体的L‎o ad事件‎中编写,为相关控件‎绑定相数据‎。

代码如下:(3)为“第一条”按钮控件编‎写代码:代码如下图‎所示:(4)为“下一条”按钮控件编‎写代码:代码如下图‎所示:(5)为“上一条”按钮控件编‎写代码:代码如下图‎所示:(6)为“最后一条”按钮控件编‎写代码:代码(略)。

自己编写(7)给“新增”按钮编写代‎码,完成添加一‎条记录首先,给项目添加‎一个窗体,窗体名称为‎“FormB‎a se”。

C# 图片保存到数据库和从数据库读取图片并显示

C# 图片保存到数据库和从数据库读取图片并显示

C# 图片保存到数据库和从数据库读取图片并显示图片保存到数据库的方法:public void imgToDB(string sql){ //参数sql中要求保存的imge变量名称为@images//调用方法如:imgToDB("update UserPhoto set Photo=@images where UserNo='" + temp + "'");FileStream fs = File.OpenRead(t_photo.Text);byte[] imageb = new byte[fs.Length];fs.Read(imageb, 0, imageb.Length);fs.Close();SqlCommand com3 = new SqlCommand (sql,con);com3.Parameters.Add("@images", SqlDbType.Image).Value = imageb;if (com3.Connection.State == ConnectionState.Closed)com3.Connection.Open();try{com3.ExecuteNonQuery();}catch{ }finally{ com3.Connection.Close(); }}数据库中读出图片并显示在picturebox中:方法一:private void ShowImage(string sql){//调用方法如:ShowImage("select Photo from UserPhoto where UserNo='" + userno +"'");SqlCommand cmd = new SqlCommand(sql, conn);conn.Open();byte[] b= (byte[])cmd.ExecuteScalar();if (b.Length 〉0){MemoryStream stream = new MemoryStream(b, true);stream.Write(b, 0, b.Length);pictureBox1.Image = new Bitmap(stream);stream.Close();}conn.Close();}方法二:当在dg中选中某行时:private void dg_MouseUp(object sender, MouseEventArgs e){//整行选择if (e.Button == System.Windows.Forms.MouseButtons.Left){//用户编号,姓名,性别,身份证号,籍贯,学院,系所,校区,部门,电话,照片//显示相片object imgobj=dg[10, dg.CurrentRow.Index].Value;if (imgobj != null && !Convert.IsDBNull(imgobj)){byte[] imgb = (byte[])imgobj;MemoryStream memStream = new MemoryStream(imgb);try{Bitmap myimge = new Bitmap(memStream);this.pictureBox1.Image = myimge;}catch{DB.msgbox("从数据库读取相片失败!");}}elsepictureBox1.Image = null;}}。

PHP上传图片到数据库并显示的实例代码

PHP上传图片到数据库并显示的实例代码

PHP上传图⽚到数据库并显⽰的实例代码PHP上传图⽚到数据库并显⽰1、创建数据表CREATE TABLE ccs_image (id int(4) unsigned NOT NULL auto_increment,description varchar(250) default NULL,bin_data longblob,filename varchar(50) default NULL,filesize varchar(50) default NULL,filetype varchar(50) default NULL,PRIMARY KEY (id))engine=myisam DEFAULT charset=utf82、⽤于上传图⽚到服务器的页⾯ upimage.html<!doctype html><html><head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><style type="text/css">*{margin: 1%}</style><title>Document</title></head><body><form method="post" action="upimage.php" enctype="multipart/form-data">描述:<input type="text" name="form_description" size="40"><input type="hidden" name="MAX_FILE_SIZE" value="1000000"> <br>上传⽂件到数据库:<input type="file" name="form_data" size="40"><br><input type="submit" name="submit" value="submit"></form></body></html>3、处理图⽚上传的php upimage.php<?phpif (isset($_POST['submit'])) {$form_description = $_POST['form_description'];$form_data_name = $_FILES['form_data']['name'];$form_data_size = $_FILES['form_data']['size'];$form_data_type = $_FILES['form_data']['type'];$form_data = $_FILES['form_data']['tmp_name'];$dsn = 'mysql:dbname=test;host=localhost';$pdo = new PDO($dsn, 'root', 'root');$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));//echo "mysqlPicture=".$data;$result = $pdo->query("INSERT INTO ccs_image (description,bin_data,filename,filesize,filetype) VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')"); if ($result) {echo "图⽚已存储到数据库";} else {echo "请求失败,请重试";注:图⽚是以⼆进制blob形式存进数据库的,像这样4、显⽰图⽚的php getimage.php<?php$id =2;// $_GET['id']; 为简洁,直接将id写上了,正常应该是通过⽤户填⼊的id获取的$dsn ='mysql:dbname=test;host=localhost';$pdo = new PDO($dsn,'root','root');$query = "select bin_data,filetype from ccs_image where id=2";$result = $pdo->query($query);$result = $result->fetchAll(2);// var_dump($result);$data = $result[0]['bin_data'];$type = $result[0]['filetype'];Header( "Content-type: $type");echo $data;5、到浏览器查看已经上传的图⽚,看是否可以显⽰以上就是本次介绍的全部相关知识点,感谢⼤家的学习和对的⽀持。

php上传图片的代码并保存到数据库

php上传图片的代码并保存到数据库

php上传图⽚的代码并保存到数据库connet.php数据库⽂件<?phpmysql_connect("localhost","root",123)or die("sorry");mysql_select_db("db_user");mysql_query("set names utf8");>do_photo.php⽂件<?php//上传你的头像session_start();if(isset($_POST['update'])){include("connect.php");//限制上传照⽚的类型function photo_type($photo_file){//查找"."第⼀次出现的位置//strrpos() 函数查找字符串在另⼀个字符串中最后⼀次出现的位置。

如果成功,则返回位置,否则返回 false。

$position=strrpos($photo_file,".");//如果返回不是false//substr() ⽅法可在字符串中抽取从 start 下标开始的指定数⽬的字符。

//global $suffix;$suffix=substr($photo_file,$position+1,strlen($photo_file)-$position);return $suffix;//定义图⽚上传的⽬录名称//diretory(upload file)}//$photo_name=$_FILES['myform']['name'];$ext=photo_type($_FILES['myform']['name']);//strtolower()转换⼩写 strtoupper()转换⼤写//$ext=strtolower($ext);$upload_dir='./upload/';if($suffix!="jpg" && $suffix!="gif"){die("不⽀持这个类型的图⽚");}//转移到./upload///mova_uploaded_file()$uploadfile=$upload_dir.time().".".$suffix;if(move_uploaded_file($_FILES['myform']['tmp_name'],$uploadfile)){$sql1="update yonjian set photo='{$uploadfile}' where id='{$_SESSION['id']}'";if(mysql_query($sql1)){header("location:account.php");}}}><form name="ljklj" action="do_photo.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000">⽂件<input name="myform" type="file" value="浏览" ><input type="submit" name="update" value="update"></form>请诸位⾼⼿多给建议,我在此多谢数据库为/*Navicat MySQL Data TransferSource Server : jiangSource Server Version : 50155Source Host : localhost:3306Source Database : db_userTarget Server Type : MYSQLTarget Server Version : 50155File Encoding : 65001Date: 2011-11-09 22:12:56*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `photo`-- ----------------------------DROP TABLE IF EXISTS `photo`;CREATE TABLE `photo` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(50) DEFAULT NULL,`photo` varchar(300) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gbk;-- ------------------------------ Records of photo-- ----------------------------。

存储过程_将图片存入数据库

存储过程_将图片存入数据库

一、写一个存储过程,将图片存入数据库中基本情况介绍:数据库版本:oracle 11g数据库用户:scott数据库密码:tigerJDK:1.6要导入的图片:D:\picture\1.jpg--创建存储图片的表CREATE TABLE IMAGE_LOB (T_ID V ARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL);--创建存储图片的目录CREATE OR REPLACE DIRECTORY IMAGES AS 'D:\picture';存储过程如下:CREATE OR REPLACE PROCEDURE IMG_INSERT (TID V ARCHAR2,FILENAME V ARCHAR2) ASF_LOB BFILE;--文件类型B_LOB BLOB;BEGINiNSERT INTO IMAGE_LOB (T_ID, T_IMAGE)V ALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB;--插入空的blobF_LOB:= BFILENAME ('IMAGES', FILENAME);--获取指定目录下的文件DBMS_LOB.FILEOPEN(F_LOB, DBMS_LOB.FILE_READONL Y);--以只读的方式打开文件DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,DBMS_LOB.GETLENGTH (F_LOB));--传递对象DBMS_LOB.FILECLOSE (F_LOB);--关闭原始文件COMMIT;END;--将该图片存入表call IMG_INSERT('1','1.gif'); 验证一下是否已存入:二、从数据库读取图片并显示在页面上项目名称为ShowPhoto启动Tomcat,在浏览器输入:http://localhost:8080/ShowPhoto/,显示如下:。

图片如何存入数据库

图片如何存入数据库

图⽚如何存⼊数据库通常对⽤户上传的图⽚需要保存到数据库中。

解决⽅法⼀般有两种:⼀种是将图⽚保存的路径存储到数据库;另⼀种是将图⽚以⼆进制数据流的形式直接写⼊数据库字段中。

以下为具体⽅法: ⼀、保存图⽚的上传路径到数据库: string uppath="";//⽤于保存图⽚上传路径 //获取上传图⽚的⽂件名 string fileFullname = this.FileUpload1.FileName; //获取图⽚上传的时间,以时间作为图⽚的名字可以防⽌图⽚重名 string dataName = DateTime.Now.ToString("yyyyMMddhhmmss"); //获取图⽚的⽂件名(不含扩展名) string fileName = fileFullname.Substring(stIndexOf("\\") + 1); //获取 string type = fileFullname.Substring(stIndexOf(".") + 1); //判断是否为要求的格式 if (type == "bmp" || type == "jpg" || type == "jpeg" || type == "gif" || type == "JPG" || type == "JPEG" || type == "BMP" || type == "GIF") { //将图⽚上传到指定路径的⽂件夹 this.FileUpload1.SaveAs(Server.MapPath("~/upload") + "\\" + dataName + "." + type); //将路径保存到变量,将该变量的值保存到数据库相应字段即可 uppath = "~/upload/" + dataName + "." + type; } ⼆、将图⽚以⼆进制数据流直接保存到数据库: 引⽤如下: using System.Drawing; using System.IO; using System.Data.SqlClient; 设计数据库时,表中相应的字段类型为iamge 保存: //图⽚路径 string strPath = this.FileUpload1.PostedFile.FileName.ToString (); //读取图⽚ FileStream fs = new System.IO.FileStream(strPath, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] photo = br.ReadBytes((int)fs.Length); br.Close(); fs.Close(); //存⼊ SqlConnection myConn = new SqlConnection("Data Source=.;Initial Catalog=stumanage;User ID=sa;Password=123"); string strComm = " INSERT INTO stuInfo(stuid,stuimage) VALUES(107,@photoBinary )";//操作数据库语句根据需要修改 SqlCommand myComm = new SqlCommand(strComm, myConn); myComm.Parameters.Add("@photoBinary", SqlDbType.Binary, photo.Length); myComm.Parameters["@photoBinary"].Value = photo; myConn.Open(); if (myComm.ExecuteNonQuery() > 0) { bel1.Text = "ok"; } myConn.Close(); 读取: ...连接数据库字符串省略 mycon.Open(); SqlCommand command = new SqlCommand("select stuimage from stuInfo where stuid=107", mycon);//查询语句根据需要修改 byte[] image = (byte[])command.ExecuteScalar (); //指定从数据库读取出来的图⽚的保存路径及名字 string strPath = "~/Upload/zhangsan.JPG"; string strPhotoPath = Server.MapPath(strPath); //按上⾯的路径与名字保存图⽚⽂件 BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate)); bw.Write(image); bw.Close(); //显⽰图⽚ this.Image1.ImageUrl = strPath; 采⽤俩种⽅式可以根据实际需求灵活选择。

关于数据库插入图片的代码

关于数据库插入图片的代码

一、在程序中最好先初始化一张图片备用public void NonePhoto(){FileStream fs = new FileStream(Application.StartupPath + "\\未命名-1.jpg", FileMode.Open, FileAccess.Read);buffByte = new byte[fs.Length];fs.Read(buffByte, 0, (int)fs.Length);fs.Close();fs = null;}然后选择图片的代码public void PhotoBye(){string pathName;if (openFileDialog1.ShowDialog() == DialogResult.OK){pathName = openFileDialog1.FileName;Image im = Image.FromFile(pathName);pbxPhoto.Image = im;FileStream fs = new FileStream(pathName, FileMode.Open, FileAccess.Read);buffByte = new byte[fs.Length];fs.Read(buffByte, 0, (int)fs.Length);fs.Close();fs = null;}}然后插入数据库insertStr += "stuname,stusex,sturace,telephone,";insertStr += "photo,classnumber,depno,postalocde,";insertStr += "role,address,enrolmenttime,classid) values('{0}'";insertStr +=",'{1}','{2}','{3}','{4}',@photo,'{5}','{6}','{7}','{8}','{9}','{10}','{11}')";string sqlSrt = string.Format(insertStr, textBox1.Text, txtName.Text, cbxSex.Text, txtRace.Text, txtPhone.Text, CN, DN, txtDakNo.Text, cbxPolitics.Text, txtAddress.Text, dtpEnrollmentTime.Value.Date, CID);insertDate(sqlSrt);—————————————————————————————————————————public void insertDate(string insertSql){SqlConnection conn = BaseClass.databaseconn.dbconnection();conn.Open();try{SqlCommand insertCmd = new SqlCommand(insertSql, conn);★ insertCmd.Parameters.Add("@photo", SqlDbType.Image);★ insertCmd.Parameters["@photo"].Value = buffByte;int i = insertCmd.ExecuteNonQuery();if (i > 0){MessageBox.Show("添加学生成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);}}二、public void showPhoto(){SqlConnection conn = BaseClass.databaseconn.dbconnection();conn.Open();try{SqlCommand cmd = new SqlCommand("select photo from tb_stuinfo where stuno='" + stuNumber + "'", conn);photoByte = cmd.ExecuteScalar() as byte[];if (photoByte != null){MemoryStream ms = new MemoryStream(photoByte);Bitmap bmp = new Bitmap(ms);this.pictureBox1.Image = bmp;}}。

asp下轻松实现将上传图片到数据库的代码

asp下轻松实现将上传图片到数据库的代码

asp下轻松实现将上传图⽚到数据库的代码轻松实现将上传图⽚到数据库很久就想⾃⼰写⼀写程序了,不过由于赖就不想写我,今天刚好有空,所以写了这个⼩⼩的程序很容易⼀看就知道的,不多说了就此开始: 我们做⼀个上传的。

数据据库的字段就id⾃动编号 big 字段类型是 OLE 呵呵就简单的那个字段好了 uppic.asp上传程序名 <% dim rs dim formsize,formdata,bncrlf,divider,datastart,dataend,mydata formsize=request.totalbytes '取得客户端发过来的⼤⼩ formdata=request.binaryread(formsize)'把客户发过来的数据转成⼆进制作 bncrlf=chrB(13) & chrB(10) divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1) datastart=instrb(formdata,bncrlf & bncrlf)+4 dataend=instrb(datastart+1,formdata,divider)-datastart mydata=midb(formdata,datastart,dataend)'上⾯总共是取得图⽚的⼆进制数据 %> <!--#include file="conn.asp"--> <% sql="select * from pic order by id desc" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sql,conn,3,2 rs.addnew rs("big").appendchunk mydata '增加到数据库中 rs.update set rs=nothing set conn=nothing %> 接下来是显⽰图⽚ display.asp <!--#include file="conn.asp"--> '这个⼤家都知道吧,他就是与数据库连的⼀个程序了 <% id=request("id") set rs=server.createobject("ADODB.recordset") sql="select * from pic where id=" & id rs.open sql,conn,1,1 Response.ContentType = "text/html" '显⽰图⽚的格式也可以⽤ 'Response.ContentType = "image/gif" 以gif显⽰ 'Response.ContentType = "image/jpg" 以jpg显⽰ Response.BinaryWrite rs("big") '显⽰图⽚ rs.close set rs=nothing set connGraph=nothing %>。

图片存入mySql数据库

图片存入mySql数据库

我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用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();Stringurl="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();Stringurl="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>你运行这个程序,你就会看到刚才你写入美丽的图片就会显示在你面前。

图片以二进制方式存入SQL Server数据库

图片以二进制方式存入SQL Server数据库

1、建所需数据库和表,语句如下:--建立数据库create database test--使用该数据库use test--建立存放图片的表create table piclist(id int Identity primary key,pic Image not null)2、制作上传图片的模块,代码如下:前台html代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpPhoto.aspx.cs" Inherits="Test_UpPhoto" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" ><head runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div><input id="UpPhoto" name="UpPhoto" runat="server" type="file" /><asp:Button id="btnAdd" runat="server" Text="上传"OnClick="btnAdd_Click"></asp:Button></div></form></body></html>后台代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.IO;using System.Data.SqlClient;public partial class Test_UpPhoto : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void btnAdd_Click(object sender, EventArgs e){//获得图象并把图象转换为byte[]HttpPostedFile upPhoto = UpPhoto.PostedFile;int upPhotoLength = upPhoto.ContentLength;byte[] PhotoArray = new Byte[upPhotoLength];Stream PhotoStream = upPhoto.InputStream;PhotoStream.Read(PhotoArray, 0, upPhotoLength);//连接数据库string ConStr = "server=(local);user id=sa;pwd=sa;database=test";SqlConnection conn = new SqlConnection(ConStr);string strSql = "Insert into piclist(pic) values(@pic)";SqlCommand cmd = new SqlCommand(strSql, conn);cmd.Parameters.Add("@pic", SqlDbType.Image);cmd.Parameters["@pic"].Value = PhotoArray;conn.Open();cmd.ExecuteNonQuery();conn.Close();Response.Write("图片上传成功");}}3、制作显示图片的模块(单独显示图片,即没用到datalist):后台代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using System.IO;public partial class Test_ShowPhoto : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if(!Page.IsPostBack){//连接数据库string ConnStr = "server=(local);user id=sa;pwd=sa;database=test";string strSql = "select * from piclist";SqlConnection conn = new SqlConnection(ConnStr);conn.Open();SqlCommand cmd=new SqlCommand(strSql,conn);SqlDataReader reader = cmd.ExecuteReader();while (reader.Read()){Response.ContentType = "application/octet-stream";Response.BinaryWrite((Byte[])reader["pic"]);Response.Write("successful");}reader.Close();conn.Close();Response.End();}}}补充步骤3,用datalist显示图片方法:建立两个 页面,名称为piclist.aspx和StreamImg.aspx。

介绍如何将图片存入数据库

介绍如何将图片存入数据库

本实例主要介绍如何将图片存入数据库。

将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。

主要代码如下:private void button1_Click(object sender, EventArgs e){openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP";if(openFileDialog1.ShowDialog()==DialogResult.OK){string fullpath =openFileDialog1.FileName;//文件路径FileStream fs = new FileStream(fullpath, FileMode.Open);byte[] imagebytes =new byte[fs.Length];BinaryReader br = new BinaryReader(fs);imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));//打开数据库SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05");con.Open();SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con);com.Parameters.Add("ImageList", SqlDbType.Image);com.Parameters["ImageList"].Value = imagebytes;com.ExecuteNonQuery();con.Close();}}本实例主要介绍如何从数据库中把图片读出来。

c#读取图像保存到数据库中(数据库保存图片)

c#读取图像保存到数据库中(数据库保存图片)
if(this.picPhoto.Image==null) { m_DataRow[MyTools.g_PhotoField]=DBNull.Value; } else { try {
MemoryStream ms = new MemoryStream (); picPhoto.Image.Save (ms, System.Drawing.Imaging.ImageFormat.Bmp); byte [] myData = new Byte [ms.Length ]; ms.Position = 0; ms.Read (myData,0,Convert.ToInt32 (ms.Length )); m_DataRow[MyTools.g_PhotoField] = myxception ee) { MessageBox.Show(ee.Message); } }//else
//读取图象 if(this.m_DataRow[MyTools.g_PhotoField]!=DBNull.Value) { try { Byte[] byteBLOBData = new Byte[0]; byteBLOBData = (Byte[])m_DataRow[MyTools.g_PhotoField]; MemoryStream stmBLOBData = new MemoryStream(byteBLOBData); this.picPhoto.Image= Image.FromStream(stmBLOBData); } catch(Exception ex) { MessageBox.Show(ex.Message); } } else { this.picPhoto.Image= null; }
这篇文章详细探讨了c中的委托列举其主要的实现方式并分析其在设计层面和编码层面带来的好处最后会讨论其安全性和执行效率等当然还有实现示例

用JSP实现将图片存入数据库或从数据库中取出

用JSP实现将图片存入数据库或从数据库中取出

数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。

通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP中建立相应的数据源,利用数据库访问技术处理图片信息。

但是,如果我们想动态的显示图片,上述方法就不能满足需要了。

我们必须把图片存入数据库,然后通过编程动态地显示我们需要的图片。

实际操作中,可以利用JSP的编程模式来实现图片的数据库存储和显示。

2、建立后台数据库假定处理的是图片新闻,那么我们可以建立相应的数据库及数据表对象。

我们要存取的数据表结构的SQL脚本如下所示:if exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[picturenews]') andOBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[picturenews]GOCREATE TABLE [dbo].[picturenews] ([id] [int] IDENTITY (1, 1) NOT NULL ,[image] [image] NULL ,[content] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,[detail] [varchar] (5000) COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GO表picturenews中,字段id作为标识,每存储一行数据,自动增加1。

字段image 用于存储图片信息,其数据类型为“image”。

3、向数据库存储二进制图片启动Dreamweaver MX后,新建一个JSP文件。

其代码如下所示。

<%@ page contentType="text/html;charset=gb2312"%><HTML><HEAD><TITLE>存储图片</TITLE></HEAD><body><!-- 下面的窗体将以Post方法,将数据传递给testimage.jsp文件 --><FORM METHOD=POST ACTION="testimage.jsp">新闻标题:<INPUT TYPE="text" NAME="content"><BR>新闻图片:<INPUT TYPE="file" NAME="image"><BR>新闻内容:<TEXTAREA name="txtmail" rows="15" cols="90"style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt;HEIGHT: 200px; WIDTH: 100%" wrap="physical" ></TEXTAREA><br><INPUT TYPE="submit"></form></HTML>将此文件保存为InputImage.jsp文件,其中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("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序类Connectioncon=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");//建立数据库联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。

将图片存入数据库

将图片存入数据库
string Path = Application.StartupPath + "//Imgren"; //为获取文件的根目录
int j = 0;
FileStream fs=null;
for (int i = 1; i <= 13; i++) //利用循环添加一次添加图片
fs.Read(bt, 0, bt.Length); //读取图片的字节数
scmd.Parameters.Add("@b", SqlDbType.Image, (int)fs.Length);
scmd.Parameters["@b"].Value = bt; //将图片的字节数存入参数内
j = md.ExecuteNonQuery();
}
if (j > 0)
MessageBox.Show("将图片写入数据库成功!!!", "友好提示");
else
MessageBox.Show("将图片写入数据库失败!!!", "友好提示");
{
string sql = "insert into tb_Image values(@a,@b)"; //利用参数实现图片添加
scmd = new SqlCommand(sql, scon);
scmd.Parameters.Add("@a", SqlDbType.Int);
scmd.Parameters["@a"].Value = i; //记住该方法,将值存入参数内
byte[] bt = new byte[10240]; //初始化图片大小

PB保存图片到数据库中

PB保存图片到数据库中

PB保存图片到数据库中程序设计过程中,常需要将一些图片文件保存到数据库中。

强烈建议数据库中建一个表,仅用来保存图片,字段只有2个:id ,pic 。

其中,id字符型,pic是image类型。

PB的保存图片的代码如下:string ls_path, ls_filename //完整的路径+文件名,文件名int li_getname, li_loops, li_iint li_fileptr //文件的句柄long ll_filelen,ll_bytes_readBlob lbb_Read,lbb_Total//获取文件名li_getname = GetFileOpenName("选择图片",ls_path,ls_filename, "*.jpg, *.bmp", "Jpeg Files(*.jpg),*.jpg,Bmp Files(*.bmp),*.bmp")IF li_getname = 1 THENSetPointer(HourGlass!) //设置鼠标ll_filelen = FileLength(ls_filename) //在打开之前获取文件长度If ll_filelen > 32765 Then //一次只能读32KIf Mod(ll_filelen, 32765) = 0 Thenli_loops = ll_filelen / 32765Elseli_loops = (ll_filelen / 32765) + 1End IfElseli_loops = 1End If//打开图像文件li_fileptr = FileOpen(ls_path,STREAMMODE!,READ!,LOCKREAD!) If li_fileptr = -1 ThenBeep(2)MessageBox("错误","图片打开错误!")ReturnEnd If//循环读取图片文件For li_i = 1 to li_loopsll_bytes_read = FileRead(li_fileptr,lbb_Read)lbb_Total = lbb_T otal + lbb_ReadNextFileClose(li_fileptr) //关闭文件SQLCA.AutoCommit = trueUPDATEBLOB tablename set pic=:lbb_total where id=:ls_picid;if SQLCA.SQLNRows > 0 thenMessagebox('提示','图片保存到数据库中成功!')end ifSQLCA.AutoCommit = falseend if//************************************************************* ***“选择”按钮代码:lb_image = gf_open_pic(p_1,lb_image)p_1.setpicture(lb_image)//************************************************************* **“清除”按钮代码:p_1.picturename = ''p_1.picturename = ''//(需要两次)setnull(lb_image)//************************************************************* **函数gf_open_pic:////////////////////////////////////////////////////////////////// //Add by Jeffrey Jiang on 2001.11.13//选择图片///////////////////////////////////////////////////////////////////Modfiy by Jeffrey Jiang on 2001.11.15//当图片字节大于32765时,循环读图片/////////////////////////////////////////////////////////////////integer li_file,li_ret,loops,istring ls_file,ls_pathblob lb_smalllong flen,bytes_read,new_pos//search the fileli_ret = getfileopenname("选择图片文件",ls_path,ls_file, & "BMP","图片文件(*.BMP),*.BMP")if li_ret = 1 thenp_1.picturename = ''p_1.picturename = ''setnull(lb_image)if li_file <> -1 then//Set a wait cursorsetpointer(hourglass!)flen = filelength(ls_file)li_file = fileopen(ls_path,streammode!,read!,lockread!)// Determine how many times to call FileReadif flen > 32765 thenif mod(flen,32765)=0 thenloops = flen/32765elseloops = (flen/32765) + 1end ifelseloops = 1end if// Read the filenew_pos = 1for i = 1 to loopsbytes_read = fileread(li_file,lb_small)if i = 1 thenlb_image = lb_smallelselb_image = lb_image + lb_smallend ifnext// close the filefileclose(li_file)end ifend ifreturn lb_image//************************************************************* **保存按钮代码:UPDATEBLOB "person" SET "person"."PHOTO" = :lb_image WHERE "person"."C_ID" = :ls_c_id USING SQLCA;IF sqlcadoor.SQLNRows > 0 THENcommit using sqlca;END IF//************************************************************* **显示图片:lb_image = f_select_pic(ls_c_id)p_1.setpicture(lb_image)//************************************************************* **f_select_pic函数:blob lb_imagesetnull(lb_image)selectblob "person"."PHOTO" into:lb_image from "person" where "person"."C_ID"=:ls_c_id using sqlca;return lb_image//************************************************************* *有什么疑问可以咨询我:昕晨:EMAIL:jiangjeffrey@/doc/5310921224.html, 环境:PB65数据库:sql anywhere 5.5//数据库的字段根据自己的需要更改//*************************************************************//************************************************************* ****************有人问到,如何清除数据库中的图片而不删除该条记录,操作如下:保存图片到数据库要用UPDATEBLOB:UPDATEBLOB "M" SET "M"."PHOTO" = :ib_image WHERE "M"."C_ID" = :ls_c_id ;只删除图片而不删除记录要用UPDATE:UPDATE "M" SET "M"."PHOTO" = null WHERE "M"."C_ID" = :ls_c_id ;(数据库字段根据自己的做更改!)之前提供的gf_open_pic()函数说明:由于PowerBuilder提供的fileread()函数每次只能读出字节小于32765的图片,当图片大于32765时,我提供的gf_open_pic()函数循环读图片,传入两个参数p_1(picture),lb_image(blob)本篇教程来源于完全教程网原文链接:/doc/5310921224.html,/program/PowerB uilder/yy/20070213/30672.html我使用PB10+SQL Server2000开发数据库,采用ODBC连接方式。

PHP上传图片代码保存到数据库

PHP上传图片代码保存到数据库

PHP上传图片代码保存到数据库Html代码:up_logo.html静态页面上传的图片,点击“保存”后跳转到“test.php”。

<form name="theForm" method="post" action="test.php"><table width="100%"><tr><td style="width:30%"> <input type="file" name="file_logo" /></td></tr><tr><td align="center"><input type="submit" value="保存" class="button2" />&nbsp;&nbsp;&nbsp;<input type="reset" value="重置" class="button2" /></td></tr></table></form>Php代码:test.phpif (!empty($_FILES["file_logo"]["name"])) { //提取文件域内容名称,并判断$path="images/logo/"; //上传路径(可以自行修改)if(!file_exists($path)){//检查是否有该文件夹,如果没有就创建,并给予最高权限mkdir("$path", 0700);}//允许上传的文件格式$tp = array("image/gif","image/pjpeg","image/jpeg","image/png");//检查上传文件是否在允许上传的类型if(!in_array($_FILES["file_logo"]["type"],$tp)){echo "<script>alert('格式不对');history.go(-1);</script>";exit;}//END IF$filetype = $_FILES['file_logo']['type'];if($filetype == 'image/jpeg'){$type = '.jpg';}if ($filetype == 'image/jpg') {$type = '.jpg';}if ($filetype == 'image/pjpeg') {$type = '.jpg';}if($filetype == 'image/gif'){$type = '.gif';}if($filetype == 'image/png'){$type = '.png';}if($_FILES["file_logo"]["name"]){$today=date("YmdHis"); //获取时间并赋值给变量$file2 = $path.$today.$type; //图片的完整路径$img = $today.$type; //图片名称$flag=1;}//END IFif($flag) {$result=move_uploaded_file($_FILES["file_logo"]["tmp_name"],$file2);}//特别注意这里传递给move_uploaded_file的第一个参数为上传到服务器上的临时文件}//这里就可以写sql的语句插入到数据库中Ps:插入图片路径为$file2。

django实现将本地图片存入数据库,并能显示在web上的示例

django实现将本地图片存入数据库,并能显示在web上的示例

django实现将本地图⽚存⼊数据库,并能显⽰在web上的⽰例1. 将图⽚存⼊数据库这⾥我默认,您已经会了基本操作,能在数据库中存图⽚了,然后,也会⽤图形界⾯操作数据库中的数据了2.这⾥,我先给出我的代码,能少⾛些弯路就少⾛些a) 项⽬的urls.pyfrom django.contrib import adminfrom django.urls import pathfrom django.conf import settingsfrom django.conf.urls.static import staticurlpatterns = [path('admin/', admin.site.urls),]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)+号后⾯的⼀定要写,如果想出来结果的话!否则回报⼀个 404 的错误- b) 应⽤⾥的models.pyfrom django.db import models# Create your models here.class Person(models.Model):name = models.CharField(max_length=30)age = models.IntegerField()def __unicode__(self):# 在Python3中使⽤ def __str__(self):return class IMG(models.Model):img = models.ImageField(upload_to='img')name = models.CharField(max_length=20)def __str__(self):# 在Python3中使⽤ def __str__(self):return 之后,你要会把IMG这个模式推送到数据库。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

详解图片上传到数据库2011-04-19 10:32 冯东博客园我要评论(0)字号:T | T数据库中的储存内容不是单单的数据,内容也是丰富多彩的,如今数据库可以实现将图片上传到数据库,下文中就为大家详细介绍将图片上传到数据库的知识。

AD:下面我来汇总一下如何将图片保存到SqlServer、Oracle、Access数据库中,下文内容供大家参考学习,希望对大家能够有所帮助。

首先,我们要明白图片是以二进制的形式保存在数据库中的,那么把图片保存到数据库中的步骤大体上有这几步1.将图片转换为二进制数组(byte[]);2.把转换后的二进制数组(byte[])作为参数传递给要执行的Command;3.执行Command;首先,如何把图片转换成byte[],如果你使用的是2.0,那么你可以使用FileUpLoad控件来实现byte[] fileData = this.FileUpload1.FileBytes;如果你用的是1.1或者你在创建WinForm那么你可以使用下面的方法来把图片转换为byte[]1.public byte[] getBytes(string filePath)2.{3.System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open);4.byte[] imgData = new byte[fs.Length];5.fs.Read(imgData, 0, (int)fs.Length);6.return imgData;7.}8.接下来我们要做的就是要把已经得到的byte[]作为参数传递给Command对象1.SqlServer数据库。

SqlServer有Image字段类型,最大可以存储2G的数据。

byte[] fileData = this.FileUpload1.FileBytes;1.string sql = "insert into t_img(img) values (@img)";2.string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["fengdongDB"].ToString();3.SqlConnection sqlConn = new SqlConnection(strconn);4.SqlCommand sqlComm = new SqlCommand(sql, sqlConn);5.sqlComm.Parameters.Add("@img", SqlDbType.Image);//添加参数6.sqlComm.Parameters["@img"].Value = fileData;//为参数赋值7.8.sqlConn.Open();9.sqlComm.ExecuteNonQuery();10.sqlConn.Close();11.2.Oracle数据库。

在Oracle数据库中我们可以使用BLOB字段类型,最大可以存储4G的数据。

1.byte[] fileData = this.FileUpload1.FileBytes;2.3.string sql = "insert into t_img(imgid,IMGDATA) values(100,:IMGDATA)";4.string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringForOracle"].ToString();5.OracleConnection oraConn = new OracleConnection(strconn);6.OracleCommand oraComm = new OracleCommand(sql, oraConn);7.oraComm.Parameters.Add(":IMGDATA", OracleType.Blob);//添加参数8.oraComm.Parameters[":IMGDATA"].Value = fileData;//为参数赋值9.10.oraConn.Open();11.oraComm.ExecuteNonQuery();12.oraConn.Close();13.注意:这里我需要说明一下,用Oracle的专用连接传递参数的时候你要小心一点,看看上面的SQL语句你就会知道,要在参数名前加个“:”否则就会出现下面的错误“OracleException: ORA-01036: 非法的变量名/编号”。

这里需要我们注意一下。

另外还有一个地方,当我引用System.Data.OracleClient命名空间的时候默认是没有的,必须添加对System.Data.OracleClient的引用,我记得在VS2003下如果安装了OracleClient是不用添加引用就可以引入的。

这里也要留意一下。

3.Access数据库。

在Access中我们使用OLE对象字段类型,最大支持1G的数据。

1.byte[] fileData = this.FileUpload1.FileBytes;2.3.string sql = "insert into t_img(IMGDATA) values(?)";4.string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringForAccess"].ToString();5.6.OleDbConnection oleConn = new OleDbConnection(strconn);7.OleDbCommand oleComm = new OleDbCommand(sql, oleConn);8.oleComm.Parameters.Add("imgdata", OleDbType.Binary);9.oleComm.Parameters["imgdata"].Value = fileData;10.11.oleConn.Open();12.oleComm.ExecuteNonQuery();13.oleConn.Close();14.好了,到这里我们就把图片保存到数据库中全部说完了,接下来要说的是如何从数据库中把图片读取出来。

实际上这是与插入操做相反的一个过程:先报把从数据库中获取的图片数据转换为数组,然后把数组转换为图片。

不同数据之间没有特别大的差异,我这里只列出从Oracle数据库中把数据读取出来以供参考。

1.private byte[] getImageDataFromOracle()2.{3.string sql = "select IMGDATA from t_img where imgID=100";4.string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringForOracle"].ToString();5.OracleConnection oraConn = new OracleConnection(strconn);6.OracleCommand oraComm = new OracleCommand(sql, oraConn);7.8.oraConn.Open();9.byte[] fileData = (byte[])oraComm.ExecuteScalar();10.oraConn.Close();11.12.return fileData;13.}14.我们获取到了数据,那么把byte[]转换为图片的过程都是一样的。

1.private System.Drawing.Image convertByteToImg(byte[] imgData)2.{3.System.IO.MemoryStream ms = new System.IO.MemoryStream(imgData);4.System.Drawing.Image img = System.Drawing.Image.FromStream(ms);5.return img;如果你在开发WinForm应用的话你可以直接把返回结果保存或者显示到PictureBox里,如果你在使用那么你可以在单独的一个页面把图片输出,在另外一个页面把Image控件的ImageUrl属性指向图片输出页面。

比如输出页面getImg.aspx的代码1.protected void Page_Load(object sender, EventArgs e)2.{3.string sql = "select IMGDATA from t_img where imgID=100";4.string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringForOracle"].ToString();5.OracleConnection oraConn = new OracleConnection(strconn);6.OracleCommand oraComm = new OracleCommand(sql, oraConn);7.8.oraConn.Open();9.byte[] fileData = (byte[])oraComm.ExecuteScalar();10.oraConn.Close();11.12.System.IO.MemoryStream ms = new System.IO.MemoryStream(fileData);13.System.Drawing.Image img = System.Drawing.Image.FromStream(ms);14.img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);。

相关文档
最新文档