首页 新闻 会员 周边

asp.net 上传头像时如何把照片存储到数据库里?请高手帮忙

0
[已解决问题] 解决于 2012-11-22 10:21

上传头像先在页面显示图像,然后保存确定才真正保存到数据库里。请问二进制的照片如何传参到另外的页面?

在add.aspx页面中

    protected void Button1_Click(object sender, EventArgs e)  
       {  
       string name = FileUpload1.PostedFile.FileName;  
       string type = name.Substring(name.LastIndexOf(".") + 1);   
     FileStream fs = File.OpenRead(name);  
      byte[] content = new byte[fs.Length];  
      fs.Read(content, 0, content.Length);  
      fs.Close();  
     if (type == "jpg" || type == "gif" ||      type == "bmp" || type == "png")  
     {  

img.imageurl=" imag.aspx?s_img='"+content+"' ";
     }  
   }  

 

imag.aspx页面中接收二进制照片 

byte[] filebyep =encoding.unicode.getbytes(request.querystring("s_img").tostring());

 

如何传值? 都显示不图片

小哑巴的主页 小哑巴 | 初学一级 | 园豆:6
提问于:2012-11-06 16:29
< >
分享
最佳答案
0

同样,不建议把图片直接存放在数据库中,可以把图片的地址存放进去

奖励园豆:5
轻狂の书生 | 小虾三级 |园豆:1042 | 2012-11-06 20:30
其他回答(6)
0

建议楼主不要传二进制。容量大了  会接收不到。  建议在服务器上暂存图片  传图片路径

sym_cn | 园豆:798 (小虾三级) | 2012-11-06 17:10

苦逼孩子还木下班啊,我马上下班了,,

我本来也是这么想的,传图片路径,但是多了会不会压力太大?

网上见过不少用二进制写入流保存到数据库的  如果按你说的容量大了接收不到  就在上传的时候控制下像素分辨率什么的不知道会不会好点

支持(0) 反对(1) oppoic | 园豆:770 (小虾三级) | 2012-11-06 17:14

@心态要好:放到数据,下载,查看的时候都不方便,如何还要备份,就太大了啊

支持(0) 反对(1) chenping2008 | 园豆:9836 (大侠五级) | 2012-11-06 17:25

@chenping2008: 而且还有个问题 也不建议你存到DB中。  在DB里面的话   大概 100 200笔资料 查询就非常之慢了。 慢的非常接受不了

支持(0) 反对(1) sym_cn | 园豆:798 (小虾三级) | 2012-11-06 17:34

@sym_cn: 不管是差一条 还是差几条 都特别慢。 

支持(0) 反对(1) sym_cn | 园豆:798 (小虾三级) | 2012-11-06 17:35

@chenping2008: 以受害者的身份 强烈建议楼主 如果没什么特殊的需求 保存在硬盘里面就好了 不要搞到DB里面。

支持(0) 反对(1) sym_cn | 园豆:798 (小虾三级) | 2012-11-06 17:36

@心态要好: 六点才下班啊,你以为北方的朝九晚五啊

支持(0) 反对(0) 小哑巴 | 园豆:6 (初学一级) | 2012-11-22 10:19
0

苦逼孩子 啊……

 

你给我讲一讲数据库的本质是什么???

不管是图片还是字符 最终都要保存到硬盘上,你为啥非要把图片序列化成“字符”以后再像“字符”一样保存在硬盘上呢???

 

你为啥就不能让它直接保存在硬盘上呢???

 

嗯???????

需要格局 | 园豆:2145 (老鸟四级) | 2012-11-06 17:47
0
 1             <tr>
 2                 <td>图片:</td>
 3                 <td>
 4                     <input type="file" name="txtprojectImg" /></td>
 5             </tr>
 6 
 7      HttpPostedFile img = Request.Files["txtprojectImg"];
 8 
 9                 string url = "projectimages/" + Guid.NewGuid().ToString() + img.FileName;
10                 string ext = Path.GetExtension(img.FileName).ToLower();
11                 if (img != null)
12                 {
13                     if (ext == ".jpg" || ext == ".png" || ext == ".jpeg" || ext == ".gif")
14                     {
15                         img.SaveAs(Server.MapPath(url));
16                     }
17                     else
18                     {
19                         Page.ClientScript.RegisterStartupScript(this.GetType(), "error", "<script type='text/javascript'>alert('图片格式不正确,请您检查')</script>");
20                         return;
21                     }
22                 }
23 
24 楼主可以看一下这段代码,是将图片的路径保存在数据库中,而将图片保存在projectimages/这个文件下面,如何读取就很简单了!
Kencery | 园豆:357 (菜鸟二级) | 2012-11-07 00:52
0

还是建议存储物理文件比较好。

收获园豆:2
jerry-Tom | 园豆:4077 (老鸟四级) | 2012-11-07 10:32
-1

建议不要放二进制,一是数据量大,二是不一定所有的数据库都支持这样存储,扩展性不好

一般是存图片路径,你担心图片多了存路径有压力的问题 ,完全可以不用考虑,因为你图片一多,存二进制的压力更更更大

收获园豆:2
.! | 园豆:402 (菜鸟二级) | 2012-11-08 14:03
1

头像图片根据表最大id生成id号,然后压缩图片存硬盘上,id号存数据库表里。同时你可以把图片文件夹分组,可按照性别,地区,年龄等,这样根据图片di从文件夹找也快,然后解压缩还原头像。

收获园豆:2
leroylei | 园豆:228 (菜鸟二级) | 2012-11-10 02:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册