Heim  >  Artikel  >  Backend-Entwicklung  >  Asp.net implementiert die Funktion zum Herunterladen von Dateien

Asp.net implementiert die Funktion zum Herunterladen von Dateien

巴扎黑
巴扎黑Original
2017-08-15 13:45:442243Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung allgemeiner Verarbeitungsprogramme zur Implementierung von Datei-Download-Funktionen vor. Er ist sehr gut und hat Referenzwert.

Zuerst gibt es eine HTML-Seite. und die Seite hat einen Link, klicken Sie auf den Link, um die Datei herunterzuladen/zu speichern (ähnlich dem Thunder-Download-Link)


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title>文件下载</title>
 <meta charset="utf-8" />
</head>
<body>
 <!--该方式不行,1:如果访问的是类似文本等浏览器可以处理的文件,则是浏览器打开显示的方式,并不是文件下载;2:如果访问的是App_Data文件夹里的文件,由于.net的机制不允许访问App_Data文件夹资源,所以会报“请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径。”-->
 <a href="App_Data/readme.txt" rel="external nofollow" >下载readme.txt文件</a>
 <br />
 <a href="DownloadFileHandler.ashx" rel="external nofollow" >下载readme.txt文件</a>
</body>
</html>

Der Code des allgemeinen Verarbeitungsprogramms lautet wie folgt


using System.IO;
using System.Web;
namespace Zhong.Web
{
 /// <summary>
 /// DownloadFileHandler 的摘要说明
 /// </summary>
 public class DownloadFileHandler : IHttpHandler
 {
  public void ProcessRequest(HttpContext context)
  {
   string filePath = context.Server.MapPath("~/App_Data/readme.txt");
   FileStream fs = new FileStream(filePath, FileMode.Open);
   byte[] bytes = new byte[fs.Length];
   fs.Read(bytes, 0, bytes.Length);
   fs.Dispose();
   context.Response.ContentType = "application/octet-stream";
   context.Response.AddHeader("Content-Disposition", "attachment; filename=readme.txt");
   context.Response.BinaryWrite(bytes);
   context.Response.Flush();
   //大文件下载的解决方案
   //context.Response.ContentType = "application/x-zip-compressed";
   //context.Response.AddHeader("Content-Disposition", "attachment;filename=z.zip");
   //string filename = Server.MapPath("~/App_Data/move.zip");
   //context.Response.TransmitFile(filename);
  }
  public bool IsReusable
  {
   get
   {
    return false;
   }
  }
 }
}

Klicken Sie auf den ersten Link, um darauf zuzugreifen. Die Anzeige sieht wie folgt aus:

Klicken Sie auf Zweiter Link zum Zugriff, laden Sie die Datei herunter:

Da ich es schon einmal getestet habe, habe ich es dieses Mal readme(1).txt

genannt.

Das obige ist der detaillierte Inhalt vonAsp.net implementiert die Funktion zum Herunterladen von Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn