文件上传:
界面:
前台代码:
<body style="text-align: center; background-image: url(Images/bg6.bmp);">
    <form id="form" method="post" runat="server" enctype="multipart/form-data">
        <p style="text-align: center">
             
        </p>
        <div>
            <div style="text-align: center">
                <br />
                <table border="0" cellpadding="0" cellspacing="0" style="background-image: url(Images/wjsc.bmp); width: 412px; height: 293px">
                    <tr>
                        <td style="width: 105px; text-align: center">
                            <div style="text-align: center">
                                <div style="text-align: center">
                                    <table cellpadding="0" cellspacing="0" style="width: 410px; height: 177px; text-align: center;">
                                        <tr>
                                            <td align="left" style="width: 100px; height: 42px; text-align: left"></td>
                                        </tr>
                                        <tr>
                                            <td align="left" style="width: 100px; height: 30px; text-align: center"></td>
                                        </tr>
                                        <tr>
                                            <td align="left" style="width: 100px; height: 37px; text-align: center"> 
                                                    <input type="file" name="file" style="width: 370px" id="File1" language="javascript" onclick="return File1_onclick()" runat="server" /></td>
                                        </tr>
                                        <tr>
                                            <td align="left" style="width: 100px; height: 30px; text-align: center"> 
                                        <asp:Label ID="lbltishi" runat="server" Font-Bold="False" Font-Size="9pt" ForeColor="Red"
                                            Height="20px" Width="355px" Text="提示:请您选择要上传的文件"></asp:Label></td>
                                        </tr>
                                        <tr>
                                            <td style="width: 100px; height: 30px; text-align: center;">
                                                <asp:Button runat="server" Text="上传文件" ID="BtnUp" OnClick="BtnUp_Click" Width="128px" SkinID="btnSkin"></asp:Button></td>
                                        </tr>
                                        <tr>
                                            <td style="width: 100px; height: 21px"> </td>
                                        </tr>
                                    </table>
                                </div>
                            </div>
                        </td>
                    </tr>
                </table>
                 
            </div>
        </div>
    </form>
 

</body>

后台代码:
    //上传方法
    public void Up(int id)
    {
        HttpFileCollection UpLoad = HttpContext.Current.Request.Files; //获取页面所有上传文件
        //实现多个文件上传,逐个获取
        for (int i = 0; i < UpLoad.Count; i++)
        {
            HttpPostedFile file = UpLoad[i];//HttpPostedFile 类提供用于获取关于单独的文件的信息和读取及保存文件的属性和方法。
            string fileName = Path.GetFileName(file.FileName);//获取页面上传文件的文件名
            if (fileName != null)
            {
                file.SaveAs(MapPath("mr/") + fileName);//保存上传内容
                directory.Insert(fileName, id, file.ContentLength, "mr/" + fileName, file.ContentType);//插入数据方法
 
            }
        }
        Response.Write("<script>alert('恭喜您!文件上传成功!');window.close();</script>");
    }
    //上传按钮
    protected void BtnUp_Click(object sender, EventArgs e)
    {
        if (this.File1.PostedFile.FileName == "")
        {
            Response.Write("<script>alert('很遗憾,上传文件不能为空!')</script>");
 
        }
        else
        {
            Up(ID1);
 
        }
    }
    //插入数据(directory.Insert)
    public int Insert(string mrming, int id, int nsize, string path, string s)
    {
        SqlConnection con = new SqlConnection(GetConStr());
        SqlCommand cmd = new SqlCommand("procInsert", con);
        cmd.CommandType = CommandType.StoredProcedure;
        ///添加存储过程的参数
        SqlParameter pmrming = new SqlParameter("@mrming", SqlDbType.VarChar, 200);
        pmrming.Value = mrming;
        cmd.Parameters.Add(pmrming);
        SqlParameter pmrid = new SqlParameter("@mrid", SqlDbType.Int, 4);
        pmrid.Value = id;
        cmd.Parameters.Add(pmrid);
        SqlParameter psize = new SqlParameter("@size", SqlDbType.Int, 4);
        psize.Value = nsize;
        cmd.Parameters.Add(psize);
        SqlParameter path1 = new SqlParameter("@path", SqlDbType.VarChar, 255);
        path1.Value = path;
        cmd.Parameters.Add(path1);
        SqlParameter leibie1 = new SqlParameter("@Leibie", SqlDbType.VarChar, 200);
        leibie1.Value = s;
        cmd.Parameters.Add(leibie1);
        int i = -1;
        con.Open();
        i = cmd.ExecuteNonQuery();
        con.Close();
        return i;
    }
 
下载模块:
    protected void rpZiYuan_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "downLoad")                      //下载
        {
            try
            {
                sql = "update T_ZiYuan set F_DownloadTimes =F_DownloadTimes+1 where F_Id=" + e.CommandArgument;
                cs.ExecuteUpdate(sql);  //更新下载次数
                
                sql = "select * from T_ZiYuan where F_Id=" + e.CommandArgument;
                DataRow row = cs.GetDataSet(sql).Tables[0].Rows[0];
                string filePath = row["F_ZiYuanPath"].ToString();
 
                filePath = Server.MapPath("~/ZiYuan/" + filePath);
 
                FileStream fs = new FileStream(filePath, FileMode.Open); //建立文件流
                long fileSize = fs.Length;
 
                Context.Response.ContentType = "application/octet-stream"; //设置输出流的 HTTP MIME 类型为application/octet-stream
                Context.Response.AddHeader("Content-Disposition", "attachment;fileName=\"" + HttpUtility.UrlEncode(Path.GetFileName(filePath), System.Text.Encoding.UTF8) + "\"");//将 HTTP 头添加到输出流
                Context.Response.AddHeader("Content-Length", fileSize.ToString());//增加报文头
 
                byte[] fileBuffer = new byte[fileSize];
                fs.Read(fileBuffer, 0, (int)fileSize);
                fs.Close();
                Context.Response.BinaryWrite(fileBuffer);
                Context.Response.End();
                //Response.Redirect("DownLoad.aspx");
 
               
 
            }
            catch
            {
                throw new Exception("对不起,文件下载错误!");
            }
        }

}

ASP.NET网络硬盘(文件上传,文件下载)的更多相关文章

  1. iOS开发之结合asp.net webservice实现文件上传下载

    iOS开发中会经常用到文件上传下载的功能,这篇文件将介绍一下使用asp.net webservice实现文件上传下载. 首先,让我们看下文件下载. 这里我们下载cnblogs上的一个zip文件.使用N ...

  2. ASP.NET中的文件上传大小限制的问题

    一.文件大小限制的问题 首先我们来说一下如何解决ASP.NET中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采用更改WEB.Config文 ...

  3. Asp.net mvc 大文件上传 断点续传

    Asp.net mvc 大文件上传 断点续传 进度条   概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这 ...

  4. MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器

    MVC图片上传.浏览.删除   1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...

  5. ASP.NET知识总结(5.文件上传 文件下载)

    5.文件上传 ->说明:使用http协议只适合传输小文件,如果想传递大文件,则需要使用插件或者客户  端程序(使用ftp协议) ->客户端操作 <1>为表单添加属性:encty ...

  6. ASP.NET MVC之文件上传【一】(八)

    前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public ActionResult ...

  7. 解决ASP.NET Core Mvc文件上传限制问题

    一.简介 在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢? 二.设置上传 ...

  8. 文件上传&文件下载

    一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...

  9. ASP.NET MVC之文件上传【一】

    前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public ActionResult ...

随机推荐

  1. java@ 利用ArrayList实现dijkstra算法以及topological 排序算法(java.util.ArrayList)

    package dataStructure; import java.util.ArrayList; import java.util.LinkedList; import java.util.Que ...

  2. POJ3922 A simple stone game

    网上有很多解题报告,我的理解就是可以用类似数学归纳的方法证明,就是取一个数,让对手进入必败态. 详细见论文.

  3. 射频识别技术漫谈(13)——Mifare S50与S70【worldisng笔记】

    Mifare S50和Mifare S70又常被称为Mifare Standard.Mifare Classic.MF1,是遵守ISO14443A标准的卡片中应用最为广泛.影响力最大的的一员.而Mif ...

  4. Android 解析 xml

    URL httpUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection )httpUrl.openConnection(); c ...

  5. 【AwayPhysics学习笔记】:Away3D物理引擎的简介与使用

    首先我们要了解的是AwayPhysics这个物理引擎并不是重头开始写的新物理引擎,而是使用Flascc技术把一个已经很成熟的Bullet物理引擎引入到了Flash中,同时为了让as3可以使用这个C++ ...

  6. 【Matlab】随机游走产生图像效果

    随机游走类似布朗运动,就是随机的向各个方向走吧.产生的图像实在漂亮,所以还是贴出分享. clear all; close all; clc; n=100000; x= 0; y= 0; pixel=z ...

  7. 使用Windows的分析等待链(analyze wait chain)来诊断没用响应的应用

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用Windows的分析等待链(analyze wait chain)来诊断没用响应的应用.

  8. 利用接口做参数,写个计算器,能完成+-*/运算 (1)定义一个接口Compute含有一个方法int computer(int n,int m); (2)设计四个类分别实现此接口,完成+-*/运算 (3)设计一个类UseCompute,含有方法: public void useCom(Compute com, int one, int two) 此方法要求能够:1.用传递过来的对象调用compute

    package com.homework5; public interface Compute { //声明抽象方法 int computer(int n,int m); } package com. ...

  9. java实现生产者消费者问题

    引言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况: 生产者消费者图 ...

  10. PostgreSQL的prepare 和 execute 动作背后

    我给PostgreSQL的源代码加入了调试信息以后,会有如下表现: 我执行Prepare: postgres=# prepare s(; PREPARE postgres=# 背后的反应: ** In ...