在user.aspx.cs代码页获取到https://img.lingdigd.com/download/课程10(20241006195532).zip网络路径的压缩文件,实现下载到本地的功能,可选择下载地址的案例
时间: 2024-10-06 11:05:09 浏览: 38
阿里云java源码-webdav-aliyundriver:阿里云盘(https://www.aliyundrive.com/)的webdav
在ASP.NET中,实现从服务器端动态下载文件到用户的本地通常需要使用HTTP响应头设置以及BinaryContent来提供文件数据。下面是一个简化的例子,展示了如何在User.aspx.cs页面上获取URL并下载压缩文件:
```csharp
using System;
using System.IO;
using System.Net;
using System.Web;
protected void DownloadButton_Click(object sender, EventArgs e)
{
try
{
// 获取外部文件URL
string downloadUrl = "https://img.lingdigd.com/download/课程10(20241006195532).zip";
// 创建一个HttpResponse对象,模拟浏览器请求
HttpResponse response = HttpContext.Current.Response;
// 设置响应头信息
response.Clear();
response.ContentType = "application/zip"; // 指定文件类型
response.AddHeader("Content-Disposition", "attachment; filename=课程10.zip"); // 设置下载文件名
// 打开网络流
WebRequest request = WebRequest.Create(downloadUrl);
using (WebResponse webResponse = request.GetResponse())
using (Stream inputStream = webResponse.GetResponseStream())
{
// 将输入流复制到响应流
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0)
{
response.OutputStream.Write(buffer, 0, bytesRead);
}
}
// 设置状态码和发送响应
response.StatusCode = (int)HttpStatusCode.OK;
response.End();
}
catch (Exception ex)
{
// 处理异常
Console.WriteLine($"下载失败: {ex.Message}");
}
}
```
在这个案例中,当用户点击`DownloadButton`时,会触发`DownloadButton_Click`事件处理器。该处理程序首先创建一个HTTP响应对象,然后根据URL下载文件内容,并将其作为二进制数据发送给浏览器,使其以为是从服务器直接下载的。
阅读全文