asp.net中如何保存图片对象
答案:3 悬赏:0 手机版
解决时间 2021-02-02 14:11
- 提问者网友:謫仙
- 2021-02-02 01:55
我要的是保存图片本身,不是通过保存它的地址来保存或取出图片
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-02-02 02:13
将图片保存到数据库中:
【步骤1】以二进制方式读取图像文件
//利用FileStream读取制定路径的文件
FileStream fs = new FileStream(this.txtImagePath.Text, FileMode.Open);
int iLength = int.Parse(fs.Length.ToString());//获取当前文件的长度
Byte[] fileByte = new Byte[iLength];//创建一个byte[]的数组,用来保存文件的内容
fs.Read(fileByte, 0, iLength);//通过Read方法,把文件的内容读取到byte[]数组中。
fs.Dispose();
【步骤2】将信息插入到数据库中
SqlConnection conn = new SqlConnection(@"server=.\SQLEXPRESS;database=ImageDataBase;uid=sa");
//插入数据库
string strSql = "Insert Into tbl_Image (ImageFile) Values(@img)";
SqlCommand cmd = new SqlCommand(strSql, conn);
cmd.Parameters.Add("@img", SqlDbType.Image, iLength).Value = fileByte;
//通过赋值保存的图片的参数的值,为SqlDbType.Binary
conn.Open(); //打开连接
cmd.ExecuteNonQuery(); //执行命令
conn.Close();
将图片从数据库中读取显示:
【步骤1】从数据库中读取Image字段信息
Byte[] fileContent;
using (SqlConnection conn = new SqlConnection(@"server=.\SQLEXPRESS;database=ImageDataBase;uid=sa;pwd=12345")){
string strSql = "select ImageFile from tbl_Image";
SqlCommand cmd = new SqlCommand(strSql, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
//以上步骤完成一般的SqlCommand的命令的执行,
//返回了一个SqlDataReader把图片的内容赋值到一个byte[]数组上。
if (dr.Read()) {
fileContent = (Byte[])dr["ImageFile"];
}else {
fileContent = new Byte[0];
}
dr.Close();
}
【步骤2】将二进制信息显示在PictureBox控件中
//通过内存流MemoryStream,
//把byte[]数组fileContent加载到Image中并赋值给图片框的Image属性,
//让数据库中的图片直接显示在窗体上。
MemoryStream ms = new MemoryStream(fileContent, 0, fileContent.Length);
this.pbShowImage.Image = Image.FromStream(ms);
//关闭内存流
ms.Close();
【步骤1】以二进制方式读取图像文件
//利用FileStream读取制定路径的文件
FileStream fs = new FileStream(this.txtImagePath.Text, FileMode.Open);
int iLength = int.Parse(fs.Length.ToString());//获取当前文件的长度
Byte[] fileByte = new Byte[iLength];//创建一个byte[]的数组,用来保存文件的内容
fs.Read(fileByte, 0, iLength);//通过Read方法,把文件的内容读取到byte[]数组中。
fs.Dispose();
【步骤2】将信息插入到数据库中
SqlConnection conn = new SqlConnection(@"server=.\SQLEXPRESS;database=ImageDataBase;uid=sa");
//插入数据库
string strSql = "Insert Into tbl_Image (ImageFile) Values(@img)";
SqlCommand cmd = new SqlCommand(strSql, conn);
cmd.Parameters.Add("@img", SqlDbType.Image, iLength).Value = fileByte;
//通过赋值保存的图片的参数的值,为SqlDbType.Binary
conn.Open(); //打开连接
cmd.ExecuteNonQuery(); //执行命令
conn.Close();
将图片从数据库中读取显示:
【步骤1】从数据库中读取Image字段信息
Byte[] fileContent;
using (SqlConnection conn = new SqlConnection(@"server=.\SQLEXPRESS;database=ImageDataBase;uid=sa;pwd=12345")){
string strSql = "select ImageFile from tbl_Image";
SqlCommand cmd = new SqlCommand(strSql, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
//以上步骤完成一般的SqlCommand的命令的执行,
//返回了一个SqlDataReader把图片的内容赋值到一个byte[]数组上。
if (dr.Read()) {
fileContent = (Byte[])dr["ImageFile"];
}else {
fileContent = new Byte[0];
}
dr.Close();
}
【步骤2】将二进制信息显示在PictureBox控件中
//通过内存流MemoryStream,
//把byte[]数组fileContent加载到Image中并赋值给图片框的Image属性,
//让数据库中的图片直接显示在窗体上。
MemoryStream ms = new MemoryStream(fileContent, 0, fileContent.Length);
this.pbShowImage.Image = Image.FromStream(ms);
//关闭内存流
ms.Close();
全部回答
- 1楼网友:雾月
- 2021-02-02 05:02
<form id="form1"method="post"runat="server">
<Asp:Hyperlink
id="Hyperlink1"
Runat="server"
ImageUrl="图片存储的位置"
NavigateUrl="你要连接的位置"
/>
</form>
private void page_load(object sender ,System.EventArgs e)
{
添加你要保留的 并用语句表示 就OK
}
- 2楼网友:怙棘
- 2021-02-02 03:34
比如登录界面的上写的,textbox1为用户名,textbox2为密码,要保存,则在验证成功之后跳转主页面前写session保存,session["userid"] = textbox1.text.tostring(); session["userpwd"] = textbox1.text.tostring();或查询数据库之后把查到的值附上啦, session["userid"] = dr["userid"].tostring(); session["userpwd"] = dr["userpwd"].tostring();
部分代码:
if (dr.read())//如果数据库读到了这个用户和密码,则保存session
{
//session保存登录成功的用户信息并转到主页
session["userid"] = dr["userid"].tostring();
session["userpwd"] = dr["userpwd"].tostring();
response.redirect("index.aspx");
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯