要用.net(c#)做一个mp3上传管理的web 程序,当点浏览时用户要选择上传的文件,点上传后会上传到服务器中。请问如何做才能在用户点浏览时能够调出系统的选择文件对话框。在web程序中不能引用System.window.Forms  , 不能用OpenFileDialog来做,应该如何做呢?

解决方案 »

  1.   

    <form id="Form1" method="post" runat="server" enctype="multipart/form-data">
    <input id="filMyFile" type="file" runat="server">
    asp.net2.0下上传更简单
      

  2.   

    http://www.codeproject.com/aspnet/fileupload.asp
      

  3.   

    以下是我的代码,请帮我看一下,改一改。
    html 代码:
    <%@ Page language="c#" Codebehind="publish.aspx.cs" AutoEventWireup="false" Inherits="mp3Publish.publish" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>publish</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    <LINK href="style.css" type="text/css" rel="stylesheet">
    </HEAD>
    <body>
    <form id="Form1" method="post" runat="server">
    <FONT face="宋体">
    <TABLE id="Table1" cellSpacing="1" cellPadding="0" width="702" bgColor="#336699" border="0"
    style="WIDTH: 702px; HEIGHT: 168px">
    <TR>
    <TD style="WIDTH: 134px; HEIGHT: 21px" colSpan="2"><FONT color="#ffffff"><STRONG>歌曲发布</STRONG></FONT></TD>
    </TR>
    <TR bgColor="#ffffff">
    <TD style="WIDTH: 134px">名称:</TD>
    <TD><asp:textbox id="txtmName" runat="server" Width="200px"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ControlToValidate="txtmName" ErrorMessage="请输入歌曲名称!"></asp:requiredfieldvalidator></TD>
    </TR>
    <TR bgColor="#ffffff">
    <TD style="WIDTH: 134px">演唱者:</TD>
    <TD><asp:textbox id="txtmSonger" runat="server" Width="200px"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" ControlToValidate="txtmSonger" ErrorMessage="请输入演唱者名称!"></asp:requiredfieldvalidator></TD>
    </TR>
    <TR bgColor="#ffffff">
    <TD style="WIDTH: 134px">专辑:</TD>
    <TD><asp:textbox id="txtmZJ" runat="server" Width="200px"></asp:textbox></TD>
    </TR>
    <TR bgColor="#ffffff">
    <TD style="WIDTH: 134px">出品地:</TD>
    <TD><asp:textbox id="txtmAddress" runat="server" Width="200px"></asp:textbox></TD>
    </TR>
    <TR bgColor="#ffffff">
    <TD style="WIDTH: 134px">年代:</TD>
    <TD><asp:textbox id="txtmYear" runat="server" Width="200px" MaxLength="4"></asp:textbox></TD>
    </TR>
    <TR bgColor="#ffffff">
    <TD style="WIDTH: 134px">上传路径:</TD>
    <TD><asp:dropdownlist id="ddlmPath" runat="server"></asp:dropdownlist></TD>
    </TR>
    <TR bgColor="#ffffff">
    <TD style="WIDTH: 134px">文件名:</TD>
    <TD><asp:textbox id="txtmFileName" runat="server" Width="150px"></asp:textbox>&nbsp;
    <asp:Button id="btnbrowse" runat="server" Text="浏览..." Height="20px">
    ></asp:Button>&nbsp;<FONT size="3"><STRONG>
    <asp:requiredfieldvalidator id="RequiredFieldValidator6" runat="server" ControlToValidate="txtmFileName" ErrorMessage="请输入文件名!"
    Enabled="False"></asp:requiredfieldvalidator></STRONG></FONT></TD>
    </TR>
    <TR bgColor="#ffffff">
    <TD align="center" colSpan="2"><asp:button id="btnSubmit" runat="server" Text="提交" Height="18px"></asp:button></TD>
    </TR>
    </TABLE>
    </FONT>
      

  4.   

    <TABLE id="Table2" style="WIDTH: 704px; HEIGHT: 187px" cellSpacing="0" cellPadding="0"
    width="704" bgColor="#336699" border="0">
    <TR>
    <TD style="HEIGHT: 22px"><FONT face="宋体" color="#ffffff"><STRONG>已发布歌曲列表</STRONG></FONT></TD>
    </TR>
    <TR>
    <TD vAlign="top" bgColor="#ffffff"><FONT face="宋体"><asp:datagrid id="DataGrid1" runat="server" Width="700px" DataKeyField="mID" AutoGenerateColumns="False"
    CellPadding="1" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CCCCCC" PageSize="5" SelectedIndex="0" Height="154px">
    <SelectedItemStyle ForeColor="#000066"></SelectedItemStyle>
    <ItemStyle ForeColor="#000066"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="Black" BackColor="White"></HeaderStyle>
    <FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
    <Columns>
    <asp:BoundColumn>
    <HeaderStyle Width="20px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn Visible="False" DataField="mID">
    <HeaderStyle Width="0px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:TemplateColumn HeaderText="歌曲名称">
    <ItemTemplate>
    <asp:Label id=mname runat="server" Width="70" Text='<%# DataBinder.Eval(Container, "DataItem.mName") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id=name runat="server" Width="70" Text='<%# DataBinder.Eval(Container, "DataItem.mName") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="演唱者">
    <ItemTemplate>
    <asp:Label runat="server" Width="60" Text='<%# DataBinder.Eval(Container, "DataItem.mSonger") %>' ID="msonger">
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" Width="60" Text='<%# DataBinder.Eval(Container, "DataItem.mSonger") %>' ID="songer">
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="专辑名称">
    <ItemTemplate>
    <asp:Label runat="server" Width="80" Text='<%# DataBinder.Eval(Container, "DataItem.mzj") %>' ID="mzj">
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" Width="80" Text='<%# DataBinder.Eval(Container, "DataItem.mzj") %>' ID="zj">
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="出品地">
    <ItemTemplate>
    <asp:Label runat="server" Width="50" Text='<%# DataBinder.Eval(Container, "DataItem.mAddress") %>' ID="maddress">
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" Width="50" Text='<%# DataBinder.Eval(Container, "DataItem.mAddress") %>' ID="address">
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="年代">
    <ItemTemplate>
    <asp:Label runat="server" Width="30" Text='<%# DataBinder.Eval(Container, "DataItem.mYear") %>' ID="myear">
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" Width="30" Text='<%# DataBinder.Eval(Container, "DataItem.mYear") %>' ID="year">
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="发布路径">
    <ItemTemplate>
    <asp:Label runat="server" Width="200" Text='<%# DataBinder.Eval(Container, "DataItem.mPath2") %>' ID="mpath">
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" Width="300" Text='<%# DataBinder.Eval(Container, "DataItem.mPath2") %>' ID="path">
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:ButtonColumn Text="删除" ButtonType="PushButton" CommandName="Delete">
    <HeaderStyle Width="30px"></HeaderStyle>
    </asp:ButtonColumn>
    <asp:EditCommandColumn ButtonType="PushButton" UpdateText="更新" CancelText="取消" EditText="编辑">
    <HeaderStyle Width="30px"></HeaderStyle>
    </asp:EditCommandColumn>
    </Columns>
    <PagerStyle Visible="False" NextPageText="" PrevPageText="" BackColor="White" Wrap="False" Mode="NumericPages"></PagerStyle>
    </asp:datagrid></FONT>
    <P align="center">共有
    <asp:label id="lblTotalPage" runat="server">0</asp:label>&nbsp;页,当前为
    <asp:label id="lblCurrentPage" runat="server">0</asp:label>&nbsp;页
    <asp:hyperlink id="hlPrePage" runat="server">上一页</asp:hyperlink>&nbsp;
    <asp:hyperlink id="hlNextPage" runat="server">下一页</asp:hyperlink></P>
    </TD>
    </TR>
    </TABLE>
    <asp:hyperlink id="HyperLink1" runat="server" NavigateUrl="index.aspx">返回</asp:hyperlink><asp:textbox id="txtid" runat="server" Width="56px" Visible="False"></asp:textbox></form>
    </body>
    </HTML>
      

  5.   

    C#代码:
    using System;
    using System.Collections;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using System.ComponentModel;
    using System.IO;namespace mp3Publish
    {
    /// <summary>
    /// publish 的摘要说明。
    /// </summary>
    public class publish : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.TextBox txtmName;
    protected System.Web.UI.WebControls.TextBox txtmSonger;
    protected System.Web.UI.WebControls.TextBox txtmZJ;
    protected System.Web.UI.WebControls.TextBox txtmAddress;
    protected System.Web.UI.WebControls.TextBox txtmYear;
    protected System.Web.UI.WebControls.DropDownList ddlmPath;
    protected System.Web.UI.WebControls.Button btnSubmit;
    protected System.Web.UI.WebControls.DataGrid DataGrid1;
    protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
    protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
    protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator6;
    protected System.Web.UI.WebControls.HyperLink HyperLink1;
    protected System.Web.UI.WebControls.TextBox txtid;
    protected System.Web.UI.WebControls.HyperLink hlNextPage;
    protected System.Web.UI.WebControls.HyperLink hlPrePage;
    protected System.Web.UI.WebControls.Label lblCurrentPage;
    protected System.Web.UI.WebControls.Label lblTotalPage;
    protected System.Web.UI.WebControls.TextBox txtmFileName;
    public string sqlStr;
    public string pageup="1";
    protected System.Web.UI.WebControls.Button btnbrowse;
    public string pagedown="1"; private void Page_Load(object sender, System.EventArgs e)
    {
    if(!this.IsPostBack)
    {
    sqlStr="select * from mp3Folder";
    this.creaPds(5,1);
    this.BindDdl();
    this.BindDataGrid(); if(Request.QueryString["page"] != null)
    {
    this.creaPds(5,int.Parse(Request.QueryString["page"].ToString()));
    if(Request.Cookies["page"] == null)
    Response.Cookies.Add(new HttpCookie("page",Request.QueryString["page"].ToString()));
    else
    Response.Cookies["page"].Value = Request.QueryString["page"].ToString();
    }
    else
    {
    this.creaPds(5,1);
    if(Request.Cookies["page"] == null)
    Response.Cookies.Add(new HttpCookie("page","1"));
    else
    Response.Cookies["page"].Value = "1";
    }

    }
    // 在此处放置用户代码以初始化页面
    }
    private void BindDdl()
    {
    SqlConnection con = DBCon.con();
    SqlDataAdapter sda  = new SqlDataAdapter("select * from mp3Folder",con);
    DataSet ds = new DataSet();
    sda.Fill(ds);
    this.ddlmPath.DataSource = ds.Tables[0].DefaultView;
    this.ddlmPath.DataTextField = "fName";
    this.ddlmPath.DataValueField = "fName";
    this.ddlmPath.DataBind();
    sda.Dispose();
    ds.Dispose();
    con.Close();
    }
    private void BindDataGrid()
    {
    SqlConnection con = DBCon.con();
    SqlDataAdapter sda = new SqlDataAdapter("select * from mp3List order by mID DESC",con);
    DataSet ds = new DataSet();
    sda.Fill(ds);
    this.DataGrid1.DataSource = ds.Tables[0].DefaultView;
    this.DataGrid1.DataBind();
    sda.Dispose();
    ds.Dispose();
    con.Close();
    } private void creaPds(int pageSize,int curPage)
    {
    SqlConnection con = DBCon.con();
    SqlDataAdapter sda = new SqlDataAdapter("select * from mp3List order by mID DESC",con);
    DataSet ds = new DataSet();
    sda.Fill(ds);
    PagedDataSource pds = new PagedDataSource();
    pds.DataSource = ds.Tables[0].DefaultView;

    pds.AllowPaging = true;
    pds.PageSize = pageSize;
    if(!(curPage<1 || curPage>pds.PageCount))//当分页变量超过分页屏敝
    {
    pds.CurrentPageIndex = curPage-1;
    }
    else
    {
    pds.CurrentPageIndex = 0;
    this.hlPrePage.NavigateUrl = null;
    this.hlNextPage.NavigateUrl = null;
    }
    if(!pds.IsFirstPage)
    {
    this.hlPrePage.NavigateUrl = "publish.aspx?page="+(curPage-1);
    pageup=Convert.ToString(curPage-1);
    }
    else
    this.hlPrePage.NavigateUrl = null;
    if(!pds.IsLastPage)
    {
    this.hlNextPage.NavigateUrl = "publish.aspx?page="+(curPage+1);
    pagedown=Convert.ToString(curPage+1);
    }
    else
    {
    this.hlNextPage.NavigateUrl = null;
    pagedown=pds.PageCount.ToString();
    }
    this.lblTotalPage.Text = pds.PageCount.ToString();
    this.lblCurrentPage.Text = curPage.ToString(); this.DataGrid1.DataSource = pds;
    this.DataGrid1.DataBind();

    ds.Dispose();
    con.Close();

    }