我上传了一张图片并将其存储在asp.net的一个文件夹中并将其描述存储在数据库中我的Photo表包含以下列
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
并将图像存储在名为“upload”的文件夹中
在我已将所有列绑定到数据库的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) { 尝试 {
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);
}
}
答案 0 :(得分:2)
您可以尝试使用以下代码段吗?
ImageUrl='<%# "~/upload/" +Eval("PhotoName").ToString().Trim()+"." + Eval("ExtName").ToString().Trim() %>'
OR
ImageUrl='<%# Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port) + "/upload/" +Eval("PhotoName")+"." + Eval("ExtName") %>'
如果它不起作用,请告诉我。
答案 1 :(得分:0)
图片网址
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;
}
其中在ansID中存储了产品ID,因此获得的图像将是这样的
http://localhost:1033/upload/7.jpg
其中7是PhotoID