Skip to main content

asp.net下载大文件

为了对用户的权限进行控制等原因,下在文件的时候一般不直接给出文件连接,而是在后台代码中使用Response进行输出。对于一般的文件可以使用:

Response.Clear();
Response.WriteFile(_FilePath);
Response.End();

来输出文件。Response.WriteFile()方法,将会把整个文件载入内存,再输出。所以当文件大小在200M以上的时候(根据服务器配置有所差别)很容易出现下载失败,但我们可以时候:

Response.Clear();
int bufSize = 1000;
byte[] buf = new byte[bufSize];
FileStream fs = new FileStream(_filePath);
int len = fs.Length;
while (len > 0)
{
int lenRead = fs.Read(buf, 0, bufSize);
Response.OutputStream.Write(buf, 0, lenRead);
Response.Flush();
len = len - lenRead;
}

fs.Close();

Response.Close();

如果你是用的是.net 2.0就更简单:

Response.Clear();
Response.TransmitFile(path);
Response.End();

Comments

Popular posts from this blog

欠税了!!!!

上个礼拜,收到政府发来的信,大概知道是和缴税有关的,由于本人英文不好,而且我们缴税的方面一向是由公司负责的,以为是普通的通知。因为同事收到的信都和我的不一样,还是决定带给老大看看是什么东西。结果把老大吓了一跳,红的,居然是红的(我怎么看都只有一点淡淡的红色。)。这意味着我欠税了。在这个资本主义国家,最恐怖的事情莫过去欠税了!!!我的工作准证很可能被吊销。 下午立马跑回公司找人事部的。我居然公司成立几十年来第一个红单。。。人事部的人说还好公司一贯信誉良好,他们会和那边联系,让我先放心。 我倒是很放心,一点都不急。其实我想回家了,和女朋友的关系这几天又到了谷底,想回去了,虽然房子钱还没有着落。

ipod touch

昨天晚上买了iPod Touch 8G S$388,晚上手机没法照,上一张官网的图: 拿在手里的感觉很不错,超薄。终于可以用上传说中的多重触控了。音质?汗,我素木耳。 昨晚太赶,忘了贴膜,配套的套子也没有。今天再去森林看看。这些杂物好贵啊啊啊。