ASP.NET实现文档转SWF在线预览

4星 · 超过85%的资源 需积分: 10 89 下载量 16 浏览量 更新于2024-09-15 3 收藏 4KB TXT 举报
"asp.net在线预览技术用于将各种文档格式如doc、xls、Txt转换成类似于百度文库的在线预览形式,通过将文档转换为Flash格式,利用Flash播放器进行展示。此技术主要涉及的技术栈包括asp.net、Flashpaper、SWF以及文档转换过程。在实现过程中,开发者通常会使用FlashPaper工具,并在VS2008环境下创建一个web应用项目。配置文件Web.Config中需设置FlashPrinter.exe的路径,以便调用该程序进行文档转换。" 在ASP.NET中实现在线预览功能,首先需要理解核心概念——将非文本格式的文档转化为Web友好的格式,以便用户能够在浏览器中直接查看。在这个案例中,使用了Adobe FlashPaper工具,它能够将文档转换成SWF(Shockwave Flash)文件,这种文件类型可以在网页上通过Flash插件播放,提供类似PDF的阅读体验。 1. **FlashPaper的集成**: - Adobe FlashPaper是一款将文档转换为Flash的工具,可以处理常见的办公文档格式如.doc和.xls。在项目中,需要指定FlashPaper的安装路径,这通常在Web.Config文件的`<appSettings>`部分完成,如示例所示。 2. **文件上传与转换**: - 用户上传的文件通过ASP.NET的FileUpload控件获取,然后结合Button1点击事件触发转换过程。 - 生成一个唯一的SWF文件名,以防止文件重名问题,例如使用当前时间戳作为文件名的一部分。 - 使用`Server.MapPath()`获取服务器上的实际路径,以便保存转换后的SWF文件。 - 构建命令行参数,调用FlashPaper的可执行文件,指定输入文档和输出SWF文件的路径。 - 使用`System.Diagnostics.Process`类启动转换进程,执行转换操作。 3. **预览展示**: - 转换完成后,预览链接或按钮将指向生成的SWF文件,用户可以通过浏览器中的Flash插件进行预览。 - 在页面上显示预览链接,例如使用Label1控件显示SWF文件的完整URL。 4. **安全性与优化**: - 对于在线预览的安全性,需要考虑文件上传的验证,避免恶意文件上传。 - 为了提高用户体验,可以添加加载指示器,显示转换进度。 - 对于大型文件,可能需要优化转换过程,避免用户等待过久。 - 考虑到移动设备和现代浏览器的兼容性,需要有备选方案,因为Flash在某些设备或浏览器上可能不被支持。 通过ASP.NET和FlashPaper的结合,可以构建一个功能强大的在线预览系统,允许用户无需下载原始文件即可安全地查看各种文档格式。然而,由于Flash逐渐被淘汰,现代解决方案可能会转向HTML5技术,如PDF.js,以实现跨平台且无需插件的在线预览。
2021-12-11 上传
【核心代码】 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 using Aspose.Cells; using Aspose.Slides.Pptx; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Web.Http; namespace DocOnlineView.UI.Controllers.MVCAPI { public class HomeController : ApiController { [HttpGet] public DataTable CourseViewOnLine(string fileName) { DataTable dtlist = new DataTable(); dtlist.Columns.Add("TempDocHtml", typeof(string)); string fileDire = "/Files"; string sourceDoc = Path.Combine(fileDire, fileName); string saveDoc = ""; string docExtendName = System.IO.Path.GetExtension(sourceDoc).ToLower(); bool result = false; if (docExtendName == ".pdf") { //pdf模板文件 string tempFile = Path.Combine(fileDire, "temppdf.html"); saveDoc = Path.Combine(fileDire, "viewFiles/onlinepdf.html"); result = PdfToHtml( sourceDoc, System.Web.HttpContext.Current.Server.MapPath(tempFile), System.Web.HttpContext.Current.Server.MapPath(saveDoc)); } else { saveDoc = Path.Combine(fileDire, "viewFiles/onlineview.html"); result = OfficeDocumentToHtml( System.Web.HttpContext.Current.Server.MapPath(sourceDoc), System.Web.HttpContext.Current.Server.MapPath(saveDoc)); }