我正在使用ASP制作web应用程序。. NET表单的c#语言。
,我需要一个图像作为输入,并希望显示它…
这里'staffStatus'是GridView的ID。(我不想直接从那里绑定数据,因为应该只显示几列。)
SqlCommand cmd = new SqlCommand("SELECT * FROM [StaffInfo] WHERE Role='Staff' ", con);
SqlDataReader dr = cmd.ExecuteReader();
if ( dr.HasRows==true )
{
staffStatus.DataSource = dr;
staffStatus.DataBind();
}
是staffStatus的内容。Aspx页面(显示数据)
<asp:GridView ID="staffStatus" runat="server" AutoGenerateColumns="False" ShowHeader="false" CssClass="table">
<Columns>
<asp:TemplateField>
<ItemTemplate>
Id: <asp:Label runat="server" id="staffId" Text='<%# Eval("Id") %>' />
<br />
Name : <asp:Label ID="staffName" runat="server" Text='<%# Eval("staffName") %>' /> <asp:Label runat="server" id="staffSurname" Text='<%# Eval("staffSurname") %>' />
<br />
Email : <asp:Label ID="staffEmail" runat="server" Text='<%# Eval("staffEmail") %>' />
<br />
Gender: <asp:Label runat="server" id="staffGender" Text='<%# Eval("staffGender") %>' />
<br />
Phone No. : <asp:Label ID="staffPhoneNo" runat="server" Text='<%# Eval("staffPhoneNo") %>' />
<br />
Joining Date: <asp:Label runat="server" id="staffJoinDate" Text='<%# Eval("staffJoinDate") %>' />
<br />
Role : <asp:Label ID="Role" runat="server" Text='<%# Eval("Role") %>' />
<br />
Image : <image src='<%# Eval("staffImage") %>' />
<br />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
下面是如何保存表单数据到数据库
string staffImageName = ddlRole.SelectedItem.Text.ToUpper() + "_" + staffImage.PostedFile.FileName;
string staffImagePath = "Images/Staff/" + staffImageName;
staffImage.PostedFile.SaveAs(Server.MapPath("~/Images/Staff/") + staffImageName);
SqlCommand cmd = new SqlCommand("INSERT INTO [staffInfo] VALUES ('" + txtName.Text + "','" + txtSurname.Text + "','" + txtEmail.Text + "','" + ddlGender.SelectedItem.Text + "','" + txtPhone.Text + "','" + DateTime.Today.ToShortDateString() + "','" + cryptPassword + "','" + ddlRole.SelectedItem.Text + "','" + staffImagePath + "')", con);
int chck = cmd.ExecuteNonQuery();
所以基本上它会把照片保存为staff_pic1。jpg或ADMIN_pic2.jpg在项目中可用的图像文件夹。对于数据库,它存储的数据如Images/Staff/STAFF_pic1.jpg但是为什么应用程序上没有显示图片呢?有人能告诉我这是怎么发生的吗?
你从哪个文件夹运行GridView ?
我的意思是你可能有一个名为&;accounts/myaccounts .aspx&;
的文件夹所以,如果这个网页是嵌套的,那么图片的路径将是这个
<img src="../Content/ckdelete.png" />
但是,如果网页位于网站的根目录,那么我们将使用:
<img src="Content/ckdelete.png" />
因此,图像的路径名必须根据当前网页的运行位置而更改。但是,假设我们移动/复制代码+网页到帐户文件夹?然后你可以这样做:
Image : <image src='<%# "../" + Eval("staffImage") %>' />
<br />
通常,我懒得得到路径名,所以我打开那个页面与gridview,然后从项目探索简单的拖放图像从给定的文件夹到网页上的空白区域,这将得到我正确的路径名。我复制它,然后从页面上删除图像。
现在,当然,图像的路径名必须是web路径中可用的有效文件夹。如果出于安全原因,您不希望图像存在有效的URL ?(或者PDF之类的),那么你就可以把这些文件/图片放在web文件夹层次结构之外,并使用后面的代码来读取图片和"流"。它到gridview。但是,此时,我们假设路径名是网站中的一个有效文件夹,并且如果您键入该图片的URL,则可以显示此类图片(尝试通过在浏览器中键入URL来测试该URL -图片是否显示????)。
按照上面的方法进行测试,并将图片文件从项目资源管理器拖放到网页中,看看它是否可以显示。
所以,图片源必须是一个有效的文件夹路径到您当前的网站文件夹。如果没有,那么您可以使用后台代码从磁盘驱动器读取这些文件,但这是一个不同的问题和不同的故事和帖子!