从URL下载流文件-asp.net

从URL下载流文件-asp.net,第1张

从URL下载/流文件-asp.net

您可以使用HttpWebRequest获取文件并将其流回客户端。这使您可以获取带有URL的文件。我发现的一个示例(但不记得该在哪里归功)是

    //Create a stream for the file    Stream stream = null;    //This controls how many bytes to read at a time and send to the client    int bytesToRead = 10000;    // Buffer to read bytes in chunk size specified above    byte[] buffer = new Byte[bytesToRead];    // The number of bytes read    try    {      //Create a WebRequest to get the file      HttpWebRequest fileReq = (HttpWebRequest) HttpWebRequest.Create(url);      //Create a response for this request      HttpWebResponse fileResp = (HttpWebResponse) fileReq.GetResponse();      if (fileReq.ContentLength > 0)        fileResp.ContentLength = fileReq.ContentLength;        //Get the Stream returned from the response        stream = fileResp.GetResponseStream();        // prepare the response to the client. resp is the client Response        var resp = HttpContext.Current.Response;        //Indicate the type of data being sent        resp.ContentType = "application/octet-stream";        //Name the file         resp.AddHeader("Content-Disposition", "attachment; filename="" + fileName + """);        resp.AddHeader("Content-Length", fileResp.ContentLength.ToString());        int length;        do        { // Verify that the client is connected. if (resp.IsClientConnected) {     // Read data into the buffer.     length = stream.Read(buffer, 0, bytesToRead);     // and write it out to the response's output stream     resp.OutputStream.Write(buffer, 0, length);     // Flush the data     resp.Flush();     //Clear the buffer     buffer = new Byte[bytesToRead]; } else {     // cancel the download if client has disconnected     length = -1; }        } while (length > 0); //Repeat until no data is read    }    finally    {        if (stream != null)        { //Close the input stream stream.Close();        }    }


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5064164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存