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

「アップロード」という名前のフォルダーに画像を保存します

そして、すべての列をデータベースにバインドしたグリッドビューで、アイテムテンプレートで画像を取得し、このコードを使用してその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(オブジェクト送信者, EventArgs e) {試してください{

    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

画像のURLは

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 は写真 ID です

于 2013-07-25T13:08:18.460 に答える