c# - 一次请求内容下载两次
问题描述
我正在通过浏览器将大文件下载到客户端。当我启动下载内容时,会写入正文。我看到 chrome 向用户转移,他们看不到进度。
一旦完成传输并且以下方法完成,您就可以看到文件下载。这似乎是双重工作。
公共异步任务GetFile(字符串文件名,字符串文件令牌){
Stream stream = null;
int bufferSize = 1048576;
byte[] buffer = new byte[bufferSize];
int length;
long lengthToRead;
try
{
string filePath = Path.Combine(_env.WebRootPath, $"Common{Path.DirectorySeparatorChar}", $"Files{Path.DirectorySeparatorChar}", fileToken);
stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
long dj = stream.Length / bufferSize;
if (stream.Length % bufferSize > 0)
{
dj += 1;
}
dj = dj * bufferSize;
lengthToRead = stream.Length;
Response.ContentType = "application/pdf";
Response.Headers.Add("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.ContentLength = dj;
while( lengthToRead > 0)
{
length = stream.Read(buffer, 0, bufferSize);
await Response.BodyWriter.WriteAsync(buffer);
await Response.BodyWriter.FlushAsync();
lengthToRead = lengthToRead - length;
}
}
catch(Exception exp)
{
Response.ContentType = "text/html";
}
finally
{
if(stream != null)
{
stream.Close();
}
}
}
解决方案
推荐阅读
- angular - 如何在Angular中获取viewChild的innerHTML的值?
- typescript - 在运行时在提取的函数内提取正确的联合类型
- python - 如何在不硬编码图标文件路径的情况下在 Python tkinter 程序中拥有自定义图标?(tkinter、iconbitmap 和 cx_freeze)
- python - 使用 scapy 制作 S1AP 数据包
- scaling - Pine Editor 结合两个交易视图指标缩放问题
- dependencies - java.lang.NoSuchMethodError: com.google.api.client.http.HttpRequest.setWriteTimeout(I)Lcom/google/api/client/http/HttpRequest
- laravel - 获取超过 X 小时未更新的记录
- java - 从 hashMap 中取 10 个最高值的字符串
- php - 我想要一个字符串的前 4 个数字,并在中间保留逗号
- git - 如何法师 git rename 已经提交删除和添加的文件?