实例介绍
【实例简介】
该实例只是一个 flexpager的测试实例,用vs打开的时候 可能无法加载项目,这时,将解决方案文件OfficeToSwf1.1.sln中的 <E:\学习资料\OfficeToSwf> 路径替换成你当前的路径即可
在运行起来之后,访问这个网址即可测试 http://localhost:8549/view.aspx?id=12
文件在线预览
1.实现文件在线预览,需要使用两个软件(pdf2swf.exe)和(SaveAsPDFandXPS.exe)
pdf2swf.exe无须安装,程序直接调用
SaveAsPDFandXPS.exe 使用前安装至服务器
2.目前仅支持word/excel/ppt/pptx 4种文件的转换和预览,在此基础上还可以扩展更过文件
3.文件上传大小限制于100MB以内,通过config文件可以修改文件大小限制
4.实现原理:对上传的先进行转换pdf,如果上传格式为pdf,那么直接保存至服务器。
上传成功之后,会自动保存在服务器。点击当前上传文件预览是,在通过pdf转换为swf文件,通过flash插件进行预览
5.上传的文件统一保存在数据库,保存的内容包含上传的文件和已经转换的pdf文件,swf文件未保存,直接存在服务器UploadFile文件夹下
6.数据库为WenKu.mdf,该数据库版本过高,有可能导致无法附件,可以通过一下SQL创建数据库
create database WenKu
go
use WenKu
go
create table WenKu
(
[WID] [int] IDENTITY(1,1) NOT NULL,
[WName] [ntext] NULL,
[WUploadPath] [ntext] NULL,
[WSavePath] [ntext] NULL
)
7.通过AddFile.aspx上传文件,返回Default3.aspx,查看已经上传的文件,点击文件名进行预览
8.运行逻辑,先上传普通文件,点击预览时读取文件,先转换pdf在转换成swf格式。再次预览如果已存在,则不会转换,否则将转换
==================================================================================
权限问题
1:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"
2:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
3:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框
4:点击"标识"标签,选择"交互式用户"
5:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,
在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
6:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.
这样,我们便配置好了相应的Excel的DCOM权限.
7:如果只有Excel就设置Excel的程序,如果有Word那就也设置Word的程序
【实例截图】
【核心代码】
protected void RequestFile(string file) { string extension = file.Substring(file.LastIndexOf('.'));//获取文件后缀名 string time = file.Substring(0, file.LastIndexOf('/'));//获取日期格式(yyyy-MM-dd)的文件名 #region 创建pdf、swf保存的路径 string path = "\\UploadFile\\file\\" file.Replace("/", "\\");//设置原文件的路径 string fileUrl = System.Web.HttpContext.Current.Server.MapPath("~") path;//保存文件路径 string pdf_path = "\\UploadFile\\file_pdf\\" time "\\";//设置pdf上传路径 string pdfUrl = System.Web.HttpContext.Current.Server.MapPath("~") pdf_path;//保存文件路径 string swf_path = "\\UploadFile\\file_swf\\" time "\\";//设置swf上传路径 string swfUrl = System.Web.HttpContext.Current.Server.MapPath("~") swf_path;//保存文件路径 //如果文件不存在,则从新创建,文件夹以(yyyy-MM-d)的格式创建 if (!Directory.Exists(pdf_path) || !Directory.Exists(swf_path)) { Directory.CreateDirectory(pdfUrl);//创建pdf路径 Directory.CreateDirectory(swfUrl);//创建swf路径 } #endregion #region 文件重新命名为pdf、swf格式 string fname = file.Substring(file.LastIndexOf('/') 1);//获取文件名称,去除后缀名 string filename = fname.Substring(0, fname.LastIndexOf('.'));//获取文件名称,去除后缀名 pdfUrl = filename ".pdf";//把文件更改成pdf格式 swfUrl = filename ".swf";//把文件更改成swf格式 string strfile = filename ".swf";//把文件更改成swf格式 #endregion bool blpdf = System.IO.File.Exists(pdfUrl);//判断pdf是否已经存在 bool blswf = System.IO.File.Exists(swfUrl);//判断swf是否已经存在 #region 文件转换 if (!blpdf && !blswf)//pdf和swf都不存在 { FileUpload ffile = new FileUpload(); ffile.SaveAs(pdfUrl); //讲pdf文件保存到服务器 if (extension == ".doc" || extension == ".docx") { office2pdf.DOCConvertToPDF(fileUrl, pdfUrl); pdf2swf.PDFConvertToSWF(pdfUrl, swfUrl);//pdf转换swf保存在服务器 } else if (extension == ".xls" || extension == ".xlsx") { office2pdf.XLSConvertToPDF(fileUrl, pdfUrl); pdf2swf.PDFConvertToSWF(pdfUrl, swfUrl);//pdf转换swf保存在服务器 } else if (extension == ".ppt" || extension == ".pptx") { office2pdf.PPTConvertToPDF(fileUrl, pdfUrl); pdf2swf.PDFConvertToSWF(pdfUrl, swfUrl);//pdf转换swf保存在服务器 } else { pdf2swf.PDFConvertToSWF(fileUrl, swfUrl);//pdf转换swf保存在服务器 } } if (blpdf && !blswf) { pdf2swf.PDFConvertToSWF(pdfUrl, swfUrl);//pdf转换swf保存在服务器 } #endregion FileNames = "UploadFile/file_swf/" time "/" strfile; }
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论