当前位置:首页 > 代码 > 正文

asp.net4框架代码下载(aspnet web开发框架源代码)

admin 发布:2022-12-19 19:25 155


本篇文章给大家谈谈asp.net4框架代码下载,以及aspnet web开发框架源代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何搭建一个asp.net开发框架

新建ASP.NET MVC4 Web Application。打开Visual Studio 2012,FILE—New—Project。如图:

单机Web,单机选择ASP.NET MVC4 Web Application,输入Name(项目名称),输入或选择Location(路径),输入Solution name(解决方案名称),然后单机OK。如图:

Select a template(选择一个模板),然后单机OK。如图:

接下来新建数据访问层DataAccess(这是习惯命名,也可以自己命名)。右键单机解决方案—Add—New Project。如图:

单机选择Visual C#,然后单机选择Class Library。输入Name(类库名称),输入或选择Location(路径),单机OK。如图:

最后新建业务逻辑层Business(这是习惯命名,也可以自己命名)。右键单机解决方案—Add—New Project。如图:

单机选择Visual C#,然后单机选择Class Library。输入Name(类库名称),输入或选择Location(路径),单机OK。如图:

此时三层已经搭建完成!如图:

一个关于asp.net(c#)下载文件的问题

文件路径是不是有中文啊?zh-tw 这是繁体的!

asp.net2.0以后,我们有了很多种文件下载的选择。

public partial class FileDownLoad : System.Web.UI.Page

{

//提供下载的文件,不编码的话文件名会乱码

private string fileName = HttpContext.Current.Server.UrlEncode("规范.rar");

private string filePath = HttpContext.Current.Server.MapPath("规范.rar");

//使用TransmifFile下载文件

protected void btnDL1_Click(object sender, EventArgs e)

{

FileInfo info = new FileInfo(filePath);

long fileSize = info.Length;

Response.Clear();

Response.ContentType = "application/x-zip-compressed";

Response.AddHeader("Content-Disposition", "attachment;filename="+ fileName);

//不指明Content-Length用Flush的话不会显示下载进度

Response.AddHeader("Content-Length", fileSize.ToString());

Response.TransmitFile(filePath, 0, fileSize);

Response.Flush();

Response.Close();

}

//使用WriteFile下载文件

protected void btnDL2_Click(object sender, EventArgs e)

{

FileInfo info = new FileInfo(filePath);

long fileSize = info.Length;

Response.Clear();

Response.ContentType = "application/octet-stream";

Response.AddHeader("Content-Disposition", "attachement;filename=" + fileName);

//指定文件大小

Response.AddHeader("Content-Length", fileSize.ToString());

Response.WriteFile(filePath, 0, fileSize);

Response.Flush();

Response.Close();

}

//使用OutputStream.Write分块下载文件

protected void btnDL3_Click(object sender, EventArgs e)

{

//指定块大小

long chunkSize = 102400;

//建立一个100K的缓冲区

byte[] buffer = new byte[chunkSize];

//已读的字节数

long dataToRead = 0;

FileStream stream = null;

try

{

//打开文件

stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);

dataToRead = stream.Length;

//添加Http头

Response.ContentType = "application/octet-stream";

Response.AddHeader("Content-Disposition", "attachement;filename=" + fileName);

Response.AddHeader("Content-Length", dataToRead.ToString());

while (dataToRead 0)

{

if (Response.IsClientConnected)

{

int length = stream.Read(buffer, 0, Convert.ToInt32(chunkSize));

Response.OutputStream.Write(buffer, 0, length);

Response.Flush();

Response.Clear();

dataToRead -= length;

}

else

{

//防止client失去连接

dataToRead = -1;

}

}

}

catch (Exception ex)

{

Response.Write("Error:" + ex.Message);

}

finally

{

if (stream != null)

{

stream.Close();

}

Response.Close();

}

}

//使用BinaryWrite下载文件,大文件效率不行

protected void btnDL4_Click(object sender, EventArgs e)

{

FileStream stream = null;

try

{

//读文件,大文件一次读入会占用大量内存

stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);

byte[] bytes = new byte[stream.Length];

stream.Read(bytes, 0, bytes.Length);

stream.Close();

//添加Http头

Response.ContentType = "application/octet-stream";

Response.AddHeader("Content-Disposition", "attachement;filename=" + fileName);

Response.AddHeader("Content-Length", bytes.Length.ToString());

Response.BinaryWrite(bytes);

Response.Flush();

}

catch (Exception ex)

{

Response.Write("Error:" + ex.Message);

}

finally

{

if (stream != null)

{

stream.Close();

}

Response.Close();

}

}

//使用BinaryWrite分块下载文件

protected void btnDL5_Click(object sender, EventArgs e)

{

//指定区块和缓冲区

long chunkSize = 102400;

byte[] buffer = new byte[chunkSize];

FileStream stream = null;

long dataToRead = 0;

try

{

stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);

dataToRead = stream.Length;

//添加Http头

Response.ContentType = "application/octet-stream";

Response.AddHeader("Content-Disposition", "attachement;filename=" + fileName);

Response.AddHeader("Content-Length", dataToRead.ToString());

while (dataToRead 0)

{

if (Response.IsClientConnected)

{

int length = stream.Read(buffer, 0, Convert.ToInt32(chunkSize));

Response.BinaryWrite(buffer);

Response.Flush();

Response.Clear();

dataToRead -= length;

}

else

{

dataToRead = -1;

}

}

}

catch(Exception ex)

{

Response.Write("Error:" + ex.Message);

}

finally

{

if (stream != null)

{

stream.Close();

}

Response.Close();

}

}

}

public partial class FileDownLoad : System.Web.UI.Page { //提供下载的文件,不编码的话文件名会乱码 private string fileName = HttpContext.Current.Server.UrlEncode("规范.rar"); private string filePath = HttpContext.Current.Server.MapPath("规范.rar"); //使用TransmifFile下载文件 protected void btnDL1_Click(object sender, EventArgs e) { FileInfo info = new FileInfo(filePath); long fileSize = info.Length; Response.Clear(); Response.ContentType = "application/x-zip-compressed"; Response.AddHeader("Content-Disposition", "attachment;filename="+ fileName); //不指明Content-Length用Flush的话不会显示下载进度 Response.AddHeader("Content-Length", fileSize.ToString()); Response.TransmitFile(filePath, 0, fileSize); Response.Flush(); Response.Close(); } //使用WriteFile下载文件 protected void btnDL2_Click(object sender, EventArgs e) { FileInfo info = new FileInfo(filePath); long fileSize = info.Length; Response.Clear(); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachement;filename=" + fileName); //指定文件大小 Response.AddHeader("Content-Length", fileSize.ToString()); Response.WriteFile(filePath, 0, fileSize); Response.Flush(); Response.Close(); } //使用OutputStream.Write分块下载文件 protected void btnDL3_Click(object sender, EventArgs e) { //指定块大小 long chunkSize = 102400; //建立一个100K的缓冲区 byte[] buffer = new byte[chunkSize]; //已读的字节数 long dataToRead = 0; FileStream stream = null; try { //打开文件 stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); dataToRead = stream.Length; //添加Http头 Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachement;filename=" + fileName); Response.AddHeader("Content-Length", dataToRead.ToString()); while (dataToRead 0) { if (Response.IsClientConnected) { int length = stream.Read(buffer, 0, Convert.ToInt32(chunkSize)); Response.OutputStream.Write(buffer, 0, length); Response.Flush(); Response.Clear(); dataToRead -= length; } else { //防止client失去连接 dataToRead = -1; } } } catch (Exception ex) { Response.Write("Error:" + ex.Message); } finally { if (stream != null) { stream.Close(); } Response.Close(); } } //使用BinaryWrite下载文件,大文件效率不行 protected void btnDL4_Click(object sender, EventArgs e) { FileStream stream = null; try { //读文件,大文件一次读入会占用大量内存 stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Close(); //添加Http头 Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachement;filename=" + fileName); Response.AddHeader("Content-Length", bytes.Length.ToString()); Response.BinaryWrite(bytes); Response.Flush(); } catch (Exception ex) { Response.Write("Error:" + ex.Message); } finally { if (stream != null) { stream.Close(); } Response.Close(); } } //使用BinaryWrite分块下载文件 protected void btnDL5_Click(object sender, EventArgs e) { //指定区块和缓冲区 long chunkSize = 102400; byte[] buffer = new byte[chunkSize]; FileStream stream = null; long dataToRead = 0; try { stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); dataToRead = stream.Length; //添加Http头 Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachement;filename=" + fileName); Response.AddHeader("Content-Length", dataToRead.ToString()); while (dataToRead 0) { if (Response.IsClientConnected) { int length = stream.Read(buffer, 0, Convert.ToInt32(chunkSize)); Response.BinaryWrite(buffer); Response.Flush(); Response.Clear(); dataToRead -= length; } else { dataToRead = -1; } } } catch(Exception ex) { Response.Write("Error:" + ex.Message); } finally { if (stream != null) { stream.Close(); } Response.Close(); } } }

以上除了第四种不推荐以外,其他的都可以,但是个人感觉分块下载的要好一点。没有仔细测试,所以可能有问题。

注意:对于中文文件名要编码才能正确显示。对于长中文文件名(UTF8编码后大于153字节的中文)即使编码了,还是有问题的,大家可以参考这个链接。

asp.net 如何实现将服务器上的文件下载到本地?

给你提供一点代码:

string fileURL = this.Server.MapPath("你要下载的文件路径");//文件路径,可用相对路径

FileInfo fileInfo = new FileInfo(fileURL);

Response.Clear();

Response.AddHeader("content-disposition", "attachment;filename=" +

Server.UrlEncode(fileInfo.Name.ToString()));//文件名

Response.AddHeader("content-length", fileInfo.Length.ToString());//文件大小

Response.ContentType = "application/octet-stream";

Response.ContentEncoding = System.Text.Encoding.Default;

Response.WriteFile(fileURL);

关于asp.net4框架代码下载和aspnet web开发框架源代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/20283.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载