asp.net 2中的图片上传
2005-04-17 09:33
585 查看
BETA 2出来了,暂时还没得到,因此还是用BETA 1研究。在asp.net 2中,如何实现图片的上传展示呢?下面,我用GRIDVIEW搭配文件上传功能进行实现(而实现文件上传的原理大致一样)。在ASP。NET 2中,GRIDVIEW十分方便了,在做编辑,更新,取消时,比.net 1.1写的代码更加少了。下面举例子说明,我使用的是northwind数据库的category表,其中没使用picture字段,因为它是IMAGE类型的,不想破坏这个表的结构,因此添加了PICTURE1字段,类型是VARCHAR,纯粹是存放
上传图片的绝对路径,为了演示方便。
<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server">
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
FileUpload fileUpload = GridView1.Rows[e.RowIndex]. FindControl("FileUpload1") as FileUpload;
fileUpload.SaveAs(System.IO.Path.Combine("d://", fileUpload.FileName));
SqlDataSource1.UpdateParameters["picture1"].DefaultValue = "d://"+fileUpload.FileName;
}
</script>
<html " >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView AutoGenerateColumns="False" DataKeyNames="CategoryID" DataSourceID="SqlDataSource1" ID="GridView1" runat="server" OnRowUpdating="GridView1_RowUpdating">
<Columns>
<asp:CommandField ShowEditButton="True"></asp:CommandField>
<asp:BoundField DataField="CategoryID" HeaderText="CustomerID" InsertVisible="False" ReadOnly="True" SortExpression="CategoryID"></asp:BoundField>
<asp:BoundField DataField="categoryName" HeaderText="categoryName" SortExpression="categoryName"></asp:BoundField>
<asp:TemplateField HeaderText="picture"><EditItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="picture" Runat="server" ImageUrl='<%# Eval("picture1") %> ' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ConnectionString="server=localhost;uid=sa;password=XXXXX;database=northwind"
ID="SqlDataSource1" runat="server"
SelectCommand="SELECT [CategoryID], [categoryName], [picture1] FROM [Categories]"
UpdateCommand="UPDATE [categories] SET [categoryname] = @categoryname, [picture1] = @picture1 WHERE [CategoryID] = @original_categoryID">
<UpdateParameters>
<asp:Parameter Name="picture1" />
</UpdateParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
看,在asp.net 2中,就是这么简单,用了一个gridview,展示了该表中的字段,以及用<image>控件,也把数据库的图也展示出来了。而且还可以象asp.net 1.1那样,用了模版列,其中有更新,编辑,取消等功能。当编辑某一行时,注意:
<EditItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
</EditItemTemplate>
其中包含了文件上传的控件。而在gridviewupdating事件中,首先将上传的文件保存到磁盘中,然后,
SqlDataSource1.UpdateParameters["picture1"].DefaultValue = "d://"+fileUpload.FileName;
中,将上传图片的完整路径和文件名传值给sqldatasource的updateparameters的参数集合,再用sqldatasource的updatecommand实现将文件名真正保存到数据库的picture1字段中去。
上传图片的绝对路径,为了演示方便。
<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server">
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
FileUpload fileUpload = GridView1.Rows[e.RowIndex]. FindControl("FileUpload1") as FileUpload;
fileUpload.SaveAs(System.IO.Path.Combine("d://", fileUpload.FileName));
SqlDataSource1.UpdateParameters["picture1"].DefaultValue = "d://"+fileUpload.FileName;
}
</script>
<html " >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView AutoGenerateColumns="False" DataKeyNames="CategoryID" DataSourceID="SqlDataSource1" ID="GridView1" runat="server" OnRowUpdating="GridView1_RowUpdating">
<Columns>
<asp:CommandField ShowEditButton="True"></asp:CommandField>
<asp:BoundField DataField="CategoryID" HeaderText="CustomerID" InsertVisible="False" ReadOnly="True" SortExpression="CategoryID"></asp:BoundField>
<asp:BoundField DataField="categoryName" HeaderText="categoryName" SortExpression="categoryName"></asp:BoundField>
<asp:TemplateField HeaderText="picture"><EditItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="picture" Runat="server" ImageUrl='<%# Eval("picture1") %> ' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ConnectionString="server=localhost;uid=sa;password=XXXXX;database=northwind"
ID="SqlDataSource1" runat="server"
SelectCommand="SELECT [CategoryID], [categoryName], [picture1] FROM [Categories]"
UpdateCommand="UPDATE [categories] SET [categoryname] = @categoryname, [picture1] = @picture1 WHERE [CategoryID] = @original_categoryID">
<UpdateParameters>
<asp:Parameter Name="picture1" />
</UpdateParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
看,在asp.net 2中,就是这么简单,用了一个gridview,展示了该表中的字段,以及用<image>控件,也把数据库的图也展示出来了。而且还可以象asp.net 1.1那样,用了模版列,其中有更新,编辑,取消等功能。当编辑某一行时,注意:
<EditItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
</EditItemTemplate>
其中包含了文件上传的控件。而在gridviewupdating事件中,首先将上传的文件保存到磁盘中,然后,
SqlDataSource1.UpdateParameters["picture1"].DefaultValue = "d://"+fileUpload.FileName;
中,将上传图片的完整路径和文件名传值给sqldatasource的updateparameters的参数集合,再用sqldatasource的updatecommand实现将文件名真正保存到数据库的picture1字段中去。
相关文章推荐
- asp.net文件上传解决方案(图片上传、单文件上传、多文件上传、检查文件类型)
- asp.net上传图片代码
- 【转】asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端
- 【ASP.NET】swfuplod图片上传
- asp.net上传图片并生成缩略图
- ASP.NET MVC WebAPI 上传图片实例与实战计算BOM成本的存储过程
- ASP.NET环境下配置FCKEditor并上传图片及其它文件
- Asp.net MVC使用swupload实现多图片上传功能
- ASP.NET的图片上传和显示
- ASP.NET百度Ueditor编辑器实现上传图片添加水印效果
- 用asp.net实现将上传的图片变小存入数据库
- asp.net上传图片预览【兼容IE7,IE8】
- ASP.NET上传图片
- asp.net无刷新上传图片并预览
- 有关asp.net获取android端上传的图片问题
- 【ASP.NET 基础】图片上传和显示
- 使用ASP.NET上传图片汇总
- 基于ASP.NET+EasyUI框架实现图片上传提交表单功能(js提交图片)
- ASP.NET封面图片的上传
- ASP.NET(C#)实现一次性上传多张图片(多个文件)