1

我已经上传了一张图片并将其存储到 asp.net 中的一个文件夹中,并将其描述存储在数据库中我的照片表包含以下列

ProductPhoto
Column Name Data Type   Constraint
PhotoID     Int         Primary key,auto increment
PhotoName   Varchar(100)    
ExtName     Varchar(100)    
PhotoType   Varchar(100)    
PhotoSize   Int 
ProductID   Int         Foreign key with product info

并将图像存储在名为“上传”的文件夹中

在我将所有列绑定到数据库的gridview中,我在项目模板中拍摄了一张图像,并使用此代码绑定了它的imageurl

 <asp:GridView ID="gridview" AutoGenerateColumns="False" runat="server" style="margin-left: 0px" AllowPaging="True" AllowSorting="True" CellPadding="3" Height="238px"  BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="Solid" BorderWidth="1px" CellSpacing="2">
    <Columns>
        <asp:BoundField HeaderText="Photo ID" DataField="PhotoID" />
        <asp:BoundField HeaderText="Photo Name" DataField="PhotoName" />
        <asp:BoundField HeaderText="Extention Name" DataField="ExtName" />
        <asp:BoundField HeaderText="Photo Type" DataField="PhotoType" />
        <asp:BoundField HeaderText="Photo Size" DataField="PhotoSize" />
        <asp:BoundField HeaderText="Product ID" DataField="ProductID" />
        <asp:TemplateField HeaderText="Product Image">
            <ItemTemplate>
                <asp:Image ID="productimg"  Height="108px"  ImageUrl="~/upload/" Width="98px" runat="server"/>
                </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Delete Record">
            <ItemTemplate>
                <asp:Button ID="delete" OnClientClick="return confirm('Are You Sure To Delete The Record?')" Text="Delete This Record" CommandName="del" CommandArgument='<%# Eval("PhotoID") %>' runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Edit  Record">
            <ItemTemplate>
                <asp:Button ID="update"  CommandName="upd" Text="Edit this Record" CommandArgument='<%# Eval("PhotoID") %>' runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
     <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
     <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
     <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
     <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
     <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
     <SortedAscendingCellStyle BackColor="#FFF1D4" />
     <SortedAscendingHeaderStyle BackColor="#B95C30" />
     <SortedDescendingCellStyle BackColor="#F1E5CE" />
     <SortedDescendingHeaderStyle BackColor="#93451F" />
    </asp:GridView>

并上传我使用此代码的图像

protected void Insert_Click(object sender, EventArgs e) { try {

    if (photoupload.HasFile)
    {
        ProductPhoto prdctphoto = new ProductPhoto();
        prdctphoto.PhotoName = photoupload.FileName;
        prdctphoto.PhotoSize = photoupload.PostedFile.ContentLength;
        prdctphoto.PhotoType = photoupload.PostedFile.ContentType;
        prdctphoto.ExtName = prdctphoto.PhotoName.Substring(prdctphoto.PhotoName.LastIndexOf(".") + 1);
        prdctphoto.ProductID = int.Parse(ddlproductname.SelectedValue);
        //Response.Write(data.ExtName);
        int ans = new InsertAction().InsertData(prdctphoto);
        if (ans != 0)
        {
            string path = Server.MapPath("~/upload/") + ans.ToString() + "." + prdctphoto.ExtName;
            photoupload.SaveAs(path);
            lblmsg.Text=" File is Uploaded ";
        }

        else
        {
            lblmsg.Text="Please check all the fields";
        }

    }

}
catch (Exception ex)
{
    Response.Write(ex.Message);
}

}

4

2 回答 2

2

你能试试下面的代码片段吗?

ImageUrl='<%# "~/upload/" +Eval("PhotoName").ToString().Trim()+"." + Eval("ExtName").ToString().Trim()  %>'

或者

ImageUrl='<%#  Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port) + "/upload/" +Eval("PhotoName")+"." + Eval("ExtName")  %>'

让我知道它是否不起作用。

于 2013-07-25T11:29:10.293 回答
1

图片网址将

ImageUrl= '<%#"~/upload/" + Eval("PhotoID").ToString().Trim() + "." + Eval("ExtName").ToString().Trim()  %>'

bcoz 我已将图像路径另存为

 int ans = new InsertAction().InsertData(prdctphoto);
        if (ans != 0)
        {
            string path = Server.MapPath("~/upload/") + ans.ToString() + "." + prdctphoto.ExtName;
}

ans ProductID 存储在哪里,因此获得的 imageurl 将是这样的

http://localhost:1033/upload/7.jpg

其中 7 是 PhotoID

于 2013-07-25T13:08:18.460 回答