man*_*yst 3 c# asp.net httpwebrequest
我正在开发一个允许用户下载文件的ASP.NET网站.
以前文件存储在与网站相同的服务器上,因此我们可以这样做:
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
Response.AddHeader("Content-Length", response.ContentLength.ToString());
Response.ContentType = "application/octet-stream";
Response.TransmitFile(path);
Response.End();
Run Code Online (Sandbox Code Playgroud)
但是,现在一些文件存储在单独的服务器上.我可以验证文件是否存在使用
WebRequest request = WebRequest.Create(absolute-url);
WebResponse response = request.GetResponse();
Run Code Online (Sandbox Code Playgroud)
但是,我如何促进传输,因为TransmitFile需要虚拟路径而不是URL?
我需要用户能够选择保存文件的位置,就像正常的网络下载一样
最好的方法是什么?
如果您可以通过Web请求获取响应流,则应该能够根据以下代码段将流复制到输出流:
while ((read = stream.Read(buffer, offset, chunkSize)) > 0)
{
Response.OutputStream.Write(buffer, 0, read);
Response.Flush();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10774 次 |
最近记录: |