如何通过网络服务下载文件



如何通过网络服务下载文件?

我已经尝试过这个,但他的应用程序抛出了这个错误。

发送 http 标头后,服务器无法添加标头。

    public static void StartDownload(string path, string attachmentName)
{
    try
    {
        string serverPath = HostingEnvironment.MapPath(path);
        WebClient req = new WebClient();
        HttpResponse response = HttpContext.Current.Response;
        response.Clear();
        response.ClearContent();
        response.ClearHeaders();
        response.Buffer = true;
        response.AddHeader("Content-Type", "application/octet-stream");
        response.AddHeader("Content-Disposition", "attachment;filename="" + attachmentName + """);
        byte[] data = req.DownloadData(serverPath);
        response.BinaryWrite(data);
        //response.End();
        HttpContext.Current.ApplicationInstance.CompleteRequest();
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

要同步下载文件:

WebClient webClient = new WebClient();
webClient.DownloadFile("example.com/myfile.txt", @"c:myfile.txt");

要异步下载文件:

private void btnDownload_Click(object sender, EventArgs e)
{
  WebClient webClient = new WebClient();
  webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
  webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
  webClient.DownloadFileAsync(new Uri("example.com/myfile.txt"), @"c:myfile.txt");
}
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
  progressBar.Value = e.ProgressPercentage;
}
private void Completed(object sender, AsyncCompletedEventArgs e)
{
  MessageBox.Show("Download completed!");
}

相关内容

  • 没有找到相关文章

最新更新