解决方法一般有两种:
2、将图片以二进制数据流的形式直接写入数据库字段中。
以下为具体方法:
一、保存图片的上传路径到数据库:
string
uppath=""//用于保存图片上传路径
//获取上传图片的文件名
string fileFullname =
this.FileUpload1.FileName
//获取图片上传的时间,以时间作为图片的名字可以防止图片重名
string
dataName =
DateTime.Now.ToString("yyyyMMddhhmmss")
//获取图片的文件名(不含扩展名)
string
fileName = fileFullname.Substring(fileFullname.LastIndexOf("\\") +
1)
//获取图片扩展名
string type =
fileFullname.Substring(fileFullname.LastIndexOf(".") +
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=stumanageUser
ID=saPassword=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)
{
this.Label1.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
采用这两种方式可以根据实际需求灵活选择。
因为项目需求,必须要把图片存储到mysql数据库中.首先 mysql数据库中的表 test 字段 photo 字段的类型是 mediumblob
执行插入数据的时候报: MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near
意思是sql语句不对!语法错误!
麻烦各位大侠帮帮忙,真的很急.谢谢了.困扰 很久了.一直找不到出点,所以才来找大家的!!!
--------------------------- *** 作数据库的方法开始---------------------------
public static void AddPhoto(byte[] image)
{
//建立数据库连接
MySqlConnection conn = new MySqlConnection("server=127.0.0.1user id=rootpassword=FLUserdatabase=banklgs")
conn.Open()
//设置命令参数
string insertStr = "insert into test(photo) values(?photo)"
MySqlCommand comm = new MySqlCommand()
comm.Connection = conn
comm.CommandText = insertStr
comm.CommandType = CommandType.Text
//设置数据库字段类型MediumBlob的值为图片字节数组imageByte
MySqlParameter paraPhoto = new MySqlParameter("?photo", MySqlDbType.MediumBlob)
paraPhoto.Value = image
comm.Parameters.Add(paraPhoto)
//执行命令
try
{
comm.ExecuteNonQuery()
}
catch (Exception ex)
{
ex.ToString()
}
}
--------------------------- *** 作数据库的方法结束---------------------------
用的是 PictureBox 控件!
---------------------------将图片转换为byte的地方开始---------------------------
private void photoPictureBox_DoubleClick(object sender, EventArgs e)
{
Stream photoStream = null
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
string pathName = openFileDialog1.FileName
if ((photoStream = openFileDialog1.OpenFile()) != null)
{
using (photoStream)
{
if (photoStream.Length >50 * 1024)//文件不应大于50K
{
this.infoPanel1.ShowInfo(InfoPanel.TipType.ERROR, "文件大小不超过50K")
return
}
//将图像读入到字节数组
byte[] buffByte = new byte[photoStream.Length]
int ret = photoStream.Read(buffByte, 0, (int)photoStream.Length)
this.photo = buffByte
Image image = Image.FromStream(photoStream, true)
Image imgPhoto = image
if (buffByte.Length >15000)
文章知识点与官方知识档案匹配
MySQL入门技能树使用数据库 创建和删除数据库
33009 人正在系统学习中
点击阅读全文
打开CSDN APP,看更多技术内容
将图片存入mysql数据库中
将图片存入mysql数据库中,比如说用户头像保存到数据库以便信息的管理
mysql存储图片_浅谈怎么才能在MySQL中直接储存图片
如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。本文概述:在mysql中建立一个新的数据库一个怎样储存文件的例子程序一个怎样访问文件的例子程序在mysql中建立一个新的database首先,你必须在你的mysql中建立一个新的数据库,我们将会把那些二进制文件储存在...
继续访问
mysql存储图片
转载 mysql可以存储图片,并且有两种存储方法,分别是:1、将图片保存的路径存储到数据库;2、将图片以二进制数据流的形式直接写入数据库字段中。 可以存储图片。在mysql存储图片的方法一般有两种:其一,将图片保存的路径存储到数据库;其二,将图片以二进制数据流的形式直接写入数据库字段中。 一、保存图片的上传路径到数据库: string uppath=""//用于保存图片上传路径 //获取上传图片的文件名 string fileFullname = this.FileUpload1.FileNa
继续访问
最新发布 实战演练 | 使用 Navicat 在 MySQL 中存储图像
在今天的博客中,我们学习了如何使用Navicat Premium将图像存储在 MySQL 8数据库中。详情请点击全文~
继续访问
如何将图片存进SQL数据库中以及从数据库读取照片(解决办法)
如何将图片存进SQL数据库,以及如何从数据库中读取图片。
继续访问
Mysql对于图片的保存和取出(超详细步骤全带注释)
LONGBLOB:最多存储4,294,967,295字节的数据。MEDIUMBLOB:支持的最大长度为16,777,215字节。约等于 16363KB , 15.9MB。上传和取出的代码记得修改文件改成图片位置(现在我用的是我直接的) 不然文件会报错!对于数据库的连接代码是这个,使用的时候不要忘记修改连接数据库的账号密码 以及连接使用的数据库。BLOB:最多可以处理65,535字节的数据。约等于 63kb , 0.0624MB。对于数据库的保存 把这里改成图像就可以对于数据库进行图片预览。
继续访问
关于MySQL 中存取图片数据
使用mysql存取图片
继续访问
mysql实现添加图片_如何往mysql中添加图片
往mysql中添加图片的方法:首先创建一个方法使用FileInputStream读取图片;然后连接数据库并写入sql语句,用PreparedStatement执行sql语句。本教程 *** 作环境:windows7系统、mysql8.0.22版,该方法适用于所有品牌电脑。相关免费学习推荐:mysql视频教程往mysql中添加图片的方法:1.效果不是存了个字符串哈,可以看左边的数据类型。2. 获取blob数...
继续访问
图片插入mysql数据库_图片如何存入数据库?
展开全部1、新建一个数据库32313133353236313431303231363533e59b9ee7ad9431333431356566,数据库名为Image,表名为image。并为表添加ID,tupian两个列。2、新建一个项目(Photo),在工具箱中往窗体中拖入一个PictureBox控件,两个Button按钮,一个OpenFileDialog控件。并修改pictureBox1控件的属...
继续访问
mysql怎么放入图片_怎么将图片添加到mysql中
将图片添加到mysql中的方法:首先将数据库存储图片的字段类型设置为blob二进制大对象类型;然后将图片流转化为二进制;最后将图片插入数据库即可。正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记下如何将图片存进mysql数据库如果要图片存进数据库 要将图片转化成二进制。1.数据库存储图片的字段类型要为blob二进制大对象类型2.将图片流转化为二进制下面放上代码实例...
继续访问
将图片存储到mysql数据库
正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记下如何将图片存进mysql数据库 如果要图片存进数据库 要将图片转化成二进制。 1.数据库存储图片的字段类型要为blob二进制大对象类型 2.将图片流转化为二进制 下面放上代码实例 一、数据库 CREATE TABLE `photo` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `photo` blob, PRIMARY KEY (`id
继续访问
mysql 图片_将图片储存在MySQL数据库中的几种方法
通常对用户上传的图片需要保存到数据库中。解决方法一般有两种:1、将图片保存的路径存储到数据库;2、将图片以二进制数据流的形式直接写入数据库字段中。以下为具体方法:一、保存图片的上传路径到数据库:string uppath=""//用于保存图片上传路径//获取上传图片的文件名string fileFullname = this.FileUpload1.FileName//获取图片上传的时间,以时...
继续访问
如何把图片储存在mysql里_如何将图片储存在数据库里_MySQL
如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。本文概述:。在mysql中建立一个新的数据库。一个怎样储存文件的例子程序。一个怎样访问文件的例子程序在mysql中建立一个新的database首先,你必须在你的mysql中建立一个新的数据库,我们将会把那些二进制文件...
继续访问
热门推荐 mysql存储和读取图片
首先,介绍一下mysql相关的数据类型
继续访问
如何将图片保存至数据库?
通常对用户上传的图片需要保存到数据库中。解决方法一般有两种:一种是将图片保存的路径存储到数据库;另一种是将图片以二进制数据流的形式直接写入数据库字段中。以下为具体方法:一、保存图片的上传路径到数据库: string uppath=""//用于保存图片上传路径 //获取上传图片的文件名 string fileFullname = this.FileUpload1.FileName...
继续访问
关于图片或者文件在数据库的存储方式归纳
商品图片,用户上传的头像,其他方面的图片。目前业界存储图片有两种做法: 1、 把图片直接以二进制形式存储在数据库中 一般数据库提供一个二进制字段来存储二进制数据。比如mysql中有个blob字段。oracle数据库中是blob或bfile类型 2、 图片存储在磁盘上,数据库字段中保存的是图片的路径。 一、图片以二进制形式直接存储在数据库中 第一种存储实现(php语言...
继续访问
把图片存入mysql数据库
/* * 把图片存入mysql数据库 * # # 数据表的结构 `images` #CREATE TABLE images ( picid int(3) NOT NULL auto_increment, picdata longblob NOT NULL, pictext varchar(100) NOT NULL default , PRIMARY KEY (picid)) T
继续访问
怎么把图片存入mysql
一般没有人这么做的,因为图片文件一般都比较大。试想一下你的一个图片大小为20KB,你有5000张这样的图片,那你的要消耗的就是100MB,而存放到数据库的大小肯定超过100MB,而且数据库对图片的提取对系统的消耗是很大的。建议的做法是用一个字符串存储图片的路径,当然你还可以通天其他字段写上图片的大小啊什么的属性。如:表名为imageimg_id int(8) unsignedimg_dir varchar(100)img_weight float(6)img_height float(6)这样你就可以通过查询这几个字符串从而得到图片了。
如果你非要用数据库保存的话,mysql好像也确实提供了可以存储图片的格式,具体什么去查一下mysql帮助文档吧,我也既不清楚了。
GOOD LUCK!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)