- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的一个 ASP.NET Web 应用程序中,我需要隐藏向用户提供的 pdf 文件的位置。
因此,我正在编写一种方法,从 CMS 系统上的位置检索其二进制内容,然后将字节数组刷新给 Web 用户。
不幸的是,我在下载流时遇到错误:“无法打开文件,因为它已损坏”(或在 adobe reader 中打开文件时类似的情况)。
问题1:我做错了什么?问题2:我可以使用这种方法下载大文件吗?
private void StreamFile(IItem documentItem)
{
//CMS vendor specific API
BinaryContent itemBinaryContent = documentItem.getBinaryContent();
//Plain old .NET
Stream fileStream = itemBinaryContent.getContentStream();
var len = itemBinaryContent.getContentLength();
SendStream(fileStream, len, itemBinaryContent.getContentType());
}
private void SendStream(Stream stream, int contentLen, string contentType)
{
Response.ClearContent();
Response.ContentType = contentType;
Response.AppendHeader("content-Disposition", string.Format("inline;filename=file.pdf"));
Response.AppendHeader("content-length", contentLen.ToString());
var bytes = new byte[contentLen];
stream.Read(bytes, 0, contentLen);
stream.Close();
Response.BinaryWrite(bytes);
Response.Flush();
}
最佳答案
这是我使用的一个方法。这会传回一个附件,因此 IE 会生成一个“打开/保存”对话框。我也碰巧知道文件不会大于 1M,所以我确信有一种更简洁的方法来做到这一点。
我对 PDF 也有类似的问题,我意识到我绝对必须使用二进制流和 ReadBytes。任何带有字符串的东西都会弄乱它。
Stream stream = GetStream(); // Assuming you have a method that does this.
BinaryReader reader = new BinaryReader(stream);
HttpResponse response = HttpContext.Current.Response;
response.ContentType = "application/pdf";
response.AddHeader("Content-Disposition", "attachment; filename=file.pdf");
response.ClearContent();
response.OutputStream.Write(reader.ReadBytes(1000000), 0, 1000000);
// End the response to prevent further work by the page processor.
response.End();
关于asp.net - 尝试使用 asp.net 流式传输 PDF 文件会产生 "damaged file",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1300729/
从 Bukkit 1.6.4 开始,有另一种方式来处理玩家的生命,从现在开始生命被存储为双倍。为了兼容旧插件,Player.getHealth() 方法是不明确的,有: @Deprecated pub
我有一个 Python pyWin32 应用程序打开一个 excel 文件,隐藏 excel 应用程序,并对其进行处理。完成后,它会关闭应用程序。除非我已经运行了一个 Excel 实例,否则一切都很好
我收到以下错误: C:\Users\[USER]\Desktop\Java\TextAdventure\TextAdventure.java:39: cannot find symbol symbol
当我尝试通过 Node.js 使用 ConvertAPIs PDF to txt 时,我收到响应 5002:PDF 损坏。这是我的代码: let convertapi = require('conve
我的 Gatekeeper 设置是“App Store 和 Identified Developers” 我有一个带有签名应用程序的 DMG。 当我安装 DMG 并在本地运行时,它可以工作。 当我将相
Adobe Air 带来以下异常: The application could not be installed because the AIR file is damaged. Try obtain
设置: OS X 10.8.2 Xcode4.5.2 (4G2008a) 带有 QuickLook 插件的基于文档的 Cocoa 应用程序 问题: 我正在尝试将 QuickLook 插件添加到基于文档
我写了一个应用程序,在我的机器上编译和签名。它适用于我团队中的其他开发人员,但对于两个不同的人,一个使用 OS X Mavericks,一个使用 Yosemite,它会显示以下消息: 我能够在全新的
我有一个挂载目录来访问一些图像。 第一次用 open /mounted_dir/foo.jpg 打开图片时它在预览中打开图像。 重复相同的命令时,它会给出错误:/mounted_dir/foo.jpg
我有一个多模块 Maven 项目,其中模块共享依赖项。通过共享,我的意思是使用相同的依赖项。然而,每个模块都声明了自己的依赖关系。为了保持理智(是的,maven,理智,我知道),并让所有模块使用相同版
我正在尝试将损坏者名称作为键添加,将受害者名称作为值添加到名为damageCheck。这一切都在 EntityDamageByEntityEvent 中完成。然而,当我尝试存储受害者和破坏者时,一切都
我的应用程序需要一个包含媒体文件的扩展文件。我将签名的 apk 上传到 Play 商店,添加了扩展文件并开始了 alpha 测试。当我下载应用程序时,扩展文件也被下载了。它位于 Android/obb
好的,大家好。我对脚本编写还很陌生,我正在通过制作游戏来学习。我正在尝试对我的播放器应用随时间推移的损坏效果。虽然我有一些有用的东西,但当计时器启动时,我的帧速率从 60 以上下降到 10 以下。所以
我正在构建一个 WordPress 主题。 LocalBusiness 实体在网站的标题中说明(出现在每个页面上)。我想“itemref”业务描述,它只出现在主页上。我可以将引用放入,它会在主页上工作
我们正在向我们的项目添加一个 QuickLook 插件。 一切都很好,直到 macOS 尝试调用我们的插件,此时我们收到了令人喜爱的无法加载 bundle ,因为它已损坏或缺少必要的资源错误。 我们已
数据库服务器崩溃。我能够获取 mdf 和日志文件,并且我正在尝试将其安装到另一台服务器上。我没有备份,因为它是一个开发数据库。 当我尝试附加 mdf 和 ldf 文件时,Sql Server Mana
正在尝试安装 Mulesoft 的开发人员工作室。从 http://www.mulesoft.org/thank-you-downloading-mule-studio-mac 重新下载了 MuleS
我有一个简单的 HTML5 Canvas 对象,一旦保存到文件中,就可以在 Photoshop 中完美打开并且看起来正确,但根据 Windows 和 OSX 的说法是“损坏”或“损坏”。 我使用的代码
在我的一个 ASP.NET Web 应用程序中,我需要隐藏向用户提供的 pdf 文件的位置。 因此,我正在编写一种方法,从 CMS 系统上的位置检索其二进制内容,然后将字节数组刷新给 Web 用户。
我正在使用 Receigen ( http://receigen.etiemble.com/ ) 为我的一款 MacOS 应用程序进行收据验证。多年来,这种方法一直运作良好,但有些事情发生了变化。我已
我是一名优秀的程序员,十分优秀!