我正在开发一个 ASP .NET MVC 应用程序,用户可以在其中将文件上传到存储库。这些文件可以是 pdf、doc、任何类型的图像等。
当用户选择要导入的文件时,我想在浏览器中显示该文件,以便他们可以在上传之前查看其内容。
我知道我可以使用某种 IFrame 来显示 pdf,但我正在寻找一些特定的类或 .net 库来实现此功能。
我只需要一个北方。
我正在开发一个 ASP .NET MVC 应用程序,用户可以在其中将文件上传到存储库。这些文件可以是 pdf、doc、任何类型的图像等。
当用户选择要导入的文件时,我想在浏览器中显示该文件,以便他们可以在上传之前查看其内容。
我知道我可以使用某种 IFrame 来显示 pdf,但我正在寻找一些特定的类或 .net 库来实现此功能。
我只需要一个北方。
很棒的遮阳篷...只是想分享我的研究结果,我发现了一个很好的基于客户端的解决方案,由 Mozilla 实验室支持。这是一个基于 HTML5 和 Javascript 的框架,不需要本地代码。
这里是项目网站: https ://github.com/mozilla/pdf.js
这就是你的能力: http: //mozilla.github.com/pdf.js/web/viewer.html
最后一个很棒的视频解释了一切如何运作 http://www.youtube.com/watch?v=Iv15UY-4Fg8&noredirect=1
保留我的问题,我们将在服务器上将所有可能的文件转换为 PDF,然后使用此框架呈现此 PDF。
这是一个极其困难的问题。有一些图书馆可以提供帮助。例如,PDF 文件可能会使用ghostscript呈现为图像。Word 和 Excel 文件可以转换为 PDF 或带有许多库的图像。他们中没有一个,AFAIK,非常擅长它,所以我不能推荐一个。
您可以自动化 MSO 以执行到 PDF 的转换,但这对于服务器代码来说绝对不安全。另一种可能性是将源文档转换为 SWF 文件(如flexpaper)并在 Flash 中显示。那里有一些很棒的库,但它会限制您支持的客户端。Sharepoint 也支持提供其中一些功能。其他人使用OpenOffice 来转换MSO 文档,但质量也有所下降。
我不能真正建议任何具体的方向,因为它高度依赖于您/您的公司愿意花费的费用和预期的结果。祝你好运。
您可以尝试依赖 Windows 和资源管理器缩略图,就像这里一样,但是您必须确保:
您可以以最复杂的方式滥用服务器(安装东西,从 ASP.NET 与 shell 对话)
您在服务器上为要预览的每种类型都安装了缩略图提供程序。我想从你可以在资源管理器中看到缩略图的那一刻起,你就准备好了。因此,对于 pdf,您可能需要安装 Adobe 的 PDF Reader。
Docx 文件保存时应检查缩略图(见链接)。似乎没有其他简单、免费的方法可以将 docx 转换为缩略图。我遇到的“最佳”解决方案是以某种方式再次自动保存它,并确保选中缩略图选项。
我不想说这是不可能的,但它不能通过有限的努力来完成。
您要求的是基于浏览器的解决方案,因为您希望用户能够在上传之前“查看”文档。
因此,您不能使用服务器端解决方案,这本质上是通过引用“.Net 库”来询问的。
.Net 库依赖于已安装的 .Net 版本,该版本并不存在于所有存在图形浏览器的操作系统的所有版本中。
接下来,浏览器安全性的最新更改不允许在输入字段中读取所选文件的完整客户端文件名。
您必须依靠 HTML5 及其 FileReader 来访问文件的字节流,但即便如此,您也只能从图像文件中检索图像。(见样本)
由于浏览器和平台支持,不包括 Flash、ActiveX、Java 中基于浏览器的解决方案,这使得 JavaScript 成为唯一“合理”的解决方案:您需要为每种支持的格式提供一个库,以便将文件转换为图像浏览器支持的图像格式,或提取文件的文本(+图像)表示。