嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
该实例只是一个 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; }