首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpResponse未写入下载文件中的所有字节

HttpResponse未写入下载文件中的所有字节
EN

Stack Overflow用户
提问于 2017-11-10 05:10:02
回答 1查看 492关注 0票数 0

感谢您阅读我的帖子。我已经编写了一段HttpResponse代码来下载文件。遵循以下代码:

代码语言:javascript
复制
            string fullPath = Path.Combine(appPath, randomFileName);
            File.WriteAllBytes(fullPath, data);

            HttpResponse response = HttpContext.Current.Response;
            response.Clear();
            response.ClearContent();
            response.ClearHeaders();
            response.BufferOutput = true;
            response.Cache.SetCacheability(HttpCacheability.Private);
            response.CacheControl = "private";
            response.AddHeader("Content-Type", "binary/octet-stream");
            response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\";");
            response.AddHeader("Content-Length", data.Length.ToString((IFormatProvider)CultureInfo.InvariantCulture));
            response.Flush();
            response.BinaryWrite(data);
            response.Flush();
            response.End();

在这里,File.WriteAllBytes方法在服务器中创建一个文件,这是一个xlsx文件。在notepad++中打开此文件时,该文件有1506791个字符。在notepad++中打开下载的xlsx文件时,该文件有1490407个字符。

下载的文件无法在Microsoft Excel中打开。我使用notepad++查看是否下载了所有字节。显然,并不是所有字节都被下载。

HttpResponse没有下载所有字节。

有没有可能data.Length方法不计算unicode字符,并且当执行response.BinaryWrite时,binarywrite计算并在data.Length值达到非字节结尾时停止。

EN

回答 1

Stack Overflow用户

发布于 2017-11-10 07:28:27

这种方法使用您在将相同的数据发送回客户端之前保存的文件(让我知道它是如何进行的):

代码语言:javascript
复制
        string fullPath = Path.Combine(appPath, randomFileName);
        File.WriteAllBytes(fullPath, data);

        HttpResponse response = HttpContext.Current.Response;

        response.ClearContent();
        response.ClearHeaders();
        response.AddHeader("Content-Disposition", "inline; filename=" + randomFileName);
        response.ContentType = "binary/octet-stream";
        response.WriteFile(fullPath);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47211573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档