存储图片的方式无非两种,一是之间建立图片文件夹,直接读取图片;二是将图片放到数据库中,然后从数据库中读取图片。就本人而言,如果图片不是超级多的话,我喜欢将其放入数据库中,这样有利于项目的维护。

    一、将图片以二进制的形式存进数据库

    首先在页面中加入上传控件:


                            上传照片:
                        </td>
                        
<td class="data">
                            
<asp:FileUpload ID="FileUploadPhoto" runat="server" />
                            
<span class="validater">
                                
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="仅支持图片(.gif,.jpg) 文件。"
                                    ControlToValidate
="FileUploadPhoto" Display="None" ValidationExpression=".*((\.gif)|(\.jpg))$"></asp:RegularExpressionValidator>
                                
<ajaxToolkit:ValidatorCalloutExtender ID="RegularExpressionValidator1_ValidatorCalloutExtender"
                                    runat
="server" Enabled="True" HighlightCssClass="validateError" TargetControlID="RegularExpressionValidator1">
                                
</ajaxToolkit:ValidatorCalloutExtender>
                            
</span>
                        
</td>

   后台代码就是一句话即可:

   expert.Image = FileUploadPhoto.FileBytes; 再保存数据库,将图片存到数据库中。

    二、从数据库中读取图片:

      新建一个页面,为ShowImage.aspx;如下:

     页面的Html为

%>

    后台代码为:

;

        protected void Page_Load(object sender, EventArgs e)
        {
            var expert 
= DatabaseGateWay
                .GetNewDatabase()
                .Experts
                .GetByID(Convert.ToInt32(Request[
"ExpertID"]));

            Response.Buffer 
= true;
            Response.Clear();
            Response.ContentType 
= fileType;
            Response.OutputStream.Write(expert.Image, 
0, expert.Image.Length);

            Response.Flush();
            Response.End();
        }

     然后在需要显示图片的页面中加入Image控件,将控件的ImageUrl指向这个页面即可:

]);
    这样就完成了往数据库中存取图片的功能。

相关文章: