我正在努力提供按需生成的PDF文件给移动设备用户。我使用的是ASP.NET MVC 2,我使用Report Viewer本地报告导出为PDF格式生成PDF。
这给了我PDF内容的原始字节[]。
然后我使用:
返回它返回文件(pdf,mimeType,“FileName.pdf”);
注意,我已经尝试使用和不使用“FileName.pdf”默认名称来保存文件。
它适用于桌面浏览器和iPhone。我已经使用WP 7模拟器进行了测试,看起来它可以正常工作,如果它只能读取PDF(它会提示输入正确的文件名来保存它)。
然而,Android似乎在抱怨。我在Droid-X和Droid设备上测试过,它总是在浏览器下载结果中显示“下载失败”。在Opera Mini上,它提示保存文件(当使用包含文件名的返回方法时),并且PDF在保存在设备上后打开正常。
我可以使用以下命令返回已经存在于磁盘上的PDF文件:File(“〜/ filename.pdf”,“application / pdf”);所以它似乎只是动态PDF的一个问题。
之前有没有人处理过这个问题?
答案 0 :(得分:0)
我在Droid-X和Droid设备上测试过,它总是在浏览器下载结果中显示“下载失败”。
AFAIK,表示HTTP请求失败或MIME类型不是注册了ACTION_VIEW
活动的MIME类型。请记住,DROID没有附带PDF查看器,我忘了DROID X是否有。
我同意Chris,因为感觉问题是无效的MIME类型。考虑使用curl
或浏览器插件检查您的HTTP响应标头,并确认确实application/pdf
作为MIME类型返回。
如果这没有帮助,您可以为我们提供测试的URL,这也会有所帮助。
答案 1 :(得分:0)
我在几年前就看到了这个问题ID,但是如果你只想显示pdf,你可以在google doc viewer中嵌入你的pdf URL,然后引用该URL,然后它应该在Android浏览器上打开。
但是,只有在您的网址可公开访问时才会有效。