ASP.NET+C# FILEUPLOAD控件,如何上传图片到服务器并保存图片路径到数据库?

ASP.NET+C# FILEUPLOAD控件,如何上传图片到服务器并保存图片路径到数据库?,第1张

我做了个例子给你\x0d\x0a前台:\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a后台:\x0d\x0a protected void Button1_Click(object sender, EventArgs e)\x0d\x0a{\x0d\x0aFileUpload1.SaveAs(Server.MapPath("img/"+FileUpload1.FileName))//上传图片\x0d\x0aImage1.ImageUrl = "~/img/" + FileUpload1.FileName//图片路径(将这个数据保存到数据库就可以了。img为项目里一个文件夹的名称)\x0d\x0a} 回答于 2022-11-17

首先..定义一个函数..将图片转化为二进制码

//定义将图片转化为长二进制代码的函数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()))//读取长二进制为图片..

数据库里面用binary保存二进制流

图片你就转换成byte[]就可以了

不建议把图片保存到数据库里面

那样你的数据库会占用很大的磁盘空间

等数据量一大

就很卡


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存