使用Upload控件:
string UserDirectory = "news"//存放图片的文件夹string UserPath = Server.MapPath("../UploadFiles").ToString() + "\\" + UserDirectory + "\\" + "新闻" + "\\" + "Img" + "\\" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM")//图片存放路径
string ImgFileName
string FileName
string FileType
string UploadImgName = FileUploadImg.PostedFile.FileName //文件在本地的原始位置
FileName = UploadImgName.Substring(UploadImgName.LastIndexOf('\\') + 1).ToString()//得到文件名
FileType = UploadImgName.Substring(UploadImgName.LastIndexOf(".") + 1)//得到后缀名
if (StringFun.GetimgFileName.Getimg(FileUploadImg, UserPath, out ImgFileName))
{
imgDataUrl = "UploadFiles/" + UserDirectory + "/" + "新闻" + "/" + "Img" + "/" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM") + "/" + ImgFileName//数据库存放路径
}
首先..定义一个函数..将图片转化为二进制码//定义将图片转化为长二进制代码的函数getphoto()
public
Byte[]
getphoto(string
photopath)
{
string
str
=
photopath
FileStream
file
=
new
FileStream(str,
FileMode.Open,
FileAccess.Read)
Byte[]
bytBLOBData
=
new
Byte[file.Length]
file.Read(bytBLOBData,
0,
bytBLOBData.Length)
file.Close()
return
bytBLOBData
}//这是定义函数..
然后..就是将转换成二进制码的图片插入数据库中..下面是简单的也是重要的sql语句..
if
(this.pictureBox1.Image
!=
null)
{
sql1
=
sql1
+
",Photo"
sql2
=
sql2
+
",bytBLOBData"
Byte[]
bytBLOBData
=
getphoto(openFileDialog1.FileName)
cmd.Parameters.Add(new
OleDbParameter("jpeg",
OleDbType.Binary,
bytBLOBData.Length,
ParameterDirection.Input,
true,
0,
0,
null,
DataRowVersion.Default,
bytBLOBData))
}
接下来..是读取...
string
sql
=
"select
photo
from
studentinfo
where
studentid
=
"
+
this.Tag.ToString()
OleDbCommand
cmd
=
new
OleDbCommand(sql,
connection1)
if
(Convert.DBNull
!=
cmd.ExecuteScalar())
pictureBox1.Image
=
Image.FromStream(new
MemoryStream((Byte[])cmd.ExecuteScalar()))//读取长二进制为图片..
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)