• FileUpload上传与下载


    后台代码:

            public string connstr = "server=128.1.3.113;database=test;uid=sa;pwd=pass";
            protected void Page_Load(object sender, EventArgs e)
            {
                LoadData();
            }
    
            protected void BtnSave_Click(object sender, EventArgs e)
            {
                if (FileUpload1.HasFile)
                {
                    string name = FileUpload1.FileName;
                    string filepath = Server.MapPath("~/") + "upload\" + name;
                    using (SqlConnection conn = new SqlConnection(connstr))
                    {
                        conn.Open();
                        SqlCommand comm = conn.CreateCommand();
                        comm.CommandText = string.Format("insert into PathTable (Name,Path) values('{0}','{1}')",name,filepath);
                        int count = comm.ExecuteNonQuery();
                        if (count > 0)
                        {
                            FileUpload1.SaveAs(filepath);
                            LoadData();
                            Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('保存成功')</script>");
                        }
                        else 
                        {
                            ClientScript.RegisterStartupScript(this.GetType(),"","<script>alert('保存失败')</script>");
                        }
                    }
                }
            }
    
            public void LoadData()
            {
                using (SqlConnection conn = new SqlConnection(connstr))
                {
                    conn.Open();
                    SqlCommand comm = conn.CreateCommand();
                    comm.CommandText = "select * from PathTable";
                    comm.ExecuteScalar();
                    SqlDataAdapter adapter = new SqlDataAdapter(comm);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);
                    GridView1.DataSource = ds.Tables[0];
                    GridView1.DataBind();
                }
            }
    
            public static void DownloadFile(string physicalFilePath)
            {
                FileStream stream = null;
                try
                {
                    stream = new FileStream(physicalFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                    int bufSize = (int)stream.Length;
                    byte[] buf = new byte[bufSize];
    
                    int bytesRead = stream.Read(buf, 0, bufSize);
                    HttpContext.Current.Response.ContentType = "application/octet-stream";
                    HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.IO.Path.GetFileName(physicalFilePath));
                    HttpContext.Current.Response.OutputStream.Write(buf, 0, bytesRead);
                    HttpContext.Current.Response.End();
                }
                finally
                {
                    stream.Close();
                }
            }
    
            protected void LinkButton_Click(object sender, CommandEventArgs e)
            {
                if (e.CommandArgument!=null)
                {
                    string path = e.CommandArgument.ToString();
                    DownloadFile(path);
                }
            }

    前台代码:

    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        </div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:TemplateField HeaderText="编号">
                        <ItemTemplate>
                            <asp:Label ID="Id" Text='<%#Eval("Id") %>' runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="文件名">
                        <ItemTemplate>
                            <asp:Label ID="Name" Text='<%#Eval("Name") %>' runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="路径">
                        <ItemTemplate>
                            <asp:Label ID="Path" Text='<%#Eval("Path") %>' runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="下载">
                        <ItemTemplate>
                            <asp:LinkButton Text="下载" runat="server" CommandArgument='<%#Eval("Path")%>' OnCommand="LinkButton_Click"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
            <p>
            <asp:FileUpload ID="FileUpload1" runat="server"/>
            </p>
            <p>
            <asp:Button ID="BtnSave" runat="server" Text="保存" OnClick="BtnSave_Click" />
            </p>
        </form>
    </body>

    注意:

    1、GridView列中的TemplateField属性很实用,可以在其中添加其他发服务器控件、绑定事件和进行字段转换等;

    2、设置CommandArgumet和OnCommand事件,可以在后台方便的获取绑定的字段;

    3、Text='<%#Eval("Id")%>'   单引号内放双引号。


     

  • 相关阅读:
    2.4.4.1、Django新建APP(acounts)
    2.4.3、Django用户权限控制
    2.4.2、Django处理登录和注销
    2.4.1、Django使用内置的Admin管理用户
    2.4、使用Django自带的admin用户管理,权限管理
    2.3、django项目对数据库的操作
    2.2、创建第一个Django项目
    2、Django框架介绍
    github设置添加SSH(转)
    form表单回车提交问题
  • 原文地址:https://www.cnblogs.com/len0031/p/4244079.html
Copyright © 2020-2023  润新知