MVC应用程序实现文件库(FlexPaper)
很久之前Insus.NET在实现了《FlexPaper实现文档在线浏览》http://www.cnblogs.com/insus/archive/2011/07/21/2112369.html。 当时也只是实现了显示而已,也没有实现在线转换功能。
现在,Insus.NET已经从asp.net转向了asp.net MVC应用程序开发了。因此再想以MVC应用程序来实现文档库的功能。由于新版本的FlexPaper无法屏蔽打印的功能,因此还是用回来原来的FlexPaper组件,也意味使用前一篇的一些类库与文件。不过下载下来之后,不能直接使用,需要修改一些路径与参数。
在MVC应用程序中,不能跟asp.net一样,使用Literal控件来传递参数了,需要考虑到传递参数给js类,为了不直接传递真正的文件名给js,还得需要做另外处理。这样做是为了让用户看到指向地址,使用地址来下载文档 。
OK,开始吧,不过还得准备准备。
不管是用户上传的PDF文件是存储在数据库中,还是应用程序中的某一个文件夹中,我们是先得到找到它的 ID,此ID既可以是整数,也可以是字符串,只是是唯唯一性即可。
从前一篇下载到的源程序,把它放在MVC应用程序中,如:
为了屏蔽打印功能,请建议使用上图中高亮这个文件。如果你不想屏蔽的话,建议直接是官网下载最新版本。另外InsusDocumentVieewer.swf这个外框显示格式文件,也移至js这个目录中来,方便软件维护与管理,区别于前一篇是放在swf目录下。还要打开它,修改一下里面的参数路径:
另外,pdf2swf.exe文件,放在Bin目录之下:
这个pdf2swf.exe你可以使用最新版本的。旧的肯定没有问题。它是从SWFTools网站下载。下载之下,它是无法在windows 8和windows 2008 R2的64位下安装。但你可以在一台客户端xp或是windows7下安装,然去安装目录,把pdf2swf.exe拷贝出来。
还有一个要准备的,是在MVC应用程序下,创建一个Temp目录。此目录是存储临时转换的swf文件,或是你的pdf是二进制数据流的,生成pdf时,也是在此temp临时目录进行。

准备好了,此次演示,Insus.NET是以PDF文件存储在某一个文件夹,但它的一些基本信息是存在数据库表中。
先创建一个model:
这个model有两个属性,一个是ID,一个是swfFile。前者是用户在地址栏看到的ID,根据这个ID可以在表中找到PDF的路径或是存储在数据库的二进制流数据。后者是将是转换为swf文格格式的文件名。
在Entities目录下,创建一个实体:
此实体,即是把PDF文件或是二进制数据库转换为swf文档格式的功能。
上图中#14和#15行代码,你看得懂。
#16行是一空行,如果你的pdf文件是二进制数据流的话,就应该先在这里把二进制数据流转为pdf文档,存进Temp目录中。不懂怎样转,可以参考这篇《数据流创建文件》http://www.cnblogs.com/insus/archive/2011/04/11/2012733.html
#17行,是随机产生一个文件名,没有后缀。
此次演示中,Insus.NET已经把一个pdf文档拷贝至temp目录中,如果你的pdf文档是入在另一个目录的,你是指向它。
#18和#19行是,是找到pdf文档与swf文件(此时还没有真正产生)
#21至#36是转换swf文档。更多参数设置,可以参考官网帮助。
#38至#40是获得转换后的swf文件名,添加至List中去。将来MVC的控制器用到它。
接下来在Controllers下的HomeController创建一个ActionResult和一个JsonResult方法。
在Views\Home目录下,创建一个视图,视图名称,即是在控制器中的ActionResult方法名:
下面是这个视图代码:
#1部分是样式代码,在前一篇中,它是一个样式文件,现在直接搬至视图中来。
#2部分,是引用jQuery库,注意到否,可以用到最新版本的jQuery库。
#3部分,是引用相关的js库。
#5部分,是完全照搬旧的,没有丝毫改变。
#4部分:
在Success方法,有两个地方,是把javascript加入head中去。先要把swf文件赋值给swfFile变量中,第二是把InsusDocumentView.js类库加入至head中。
完成了。看看运行时的效果:
ThoughtWorks持续集成平台GO开源了
2014-02-28 22:44 by 破狼, 446 阅读, 5 评论, 收藏, 编辑
ThoughtWorks 持续集成平台Go最近宣布开源了。其基于Apache 2.0 开源协议。
Go下载地址为http://www.go.cd/download/.
下面是几张来自官方的视图:
GO流程图:
GO截面图:
GO的版本:
- Thoughtworks官方的宣布文章
- 你也可以在ThoughtWorks中国微信雷小达看到:GO!我们开源了!
- 同类的持续集成工具还有Jenkins
感兴趣的同学更待何时,可以去官网http://www.go.cd/download/.下载,来把玩一番了。
MVC应用程序实现文件库(FlexPaper)的更多相关文章
- 使用Metrics.NET 构建 ASP.NET MVC 应用程序的性能指标
通常我们需要监测ASP.NET MVC 或 Web API 的应用程序的性能时,通常采用的是自定义性能计数器,性能计数器会引发无休止的运维问题(损坏的计数器.权限问题等).这篇文章向你介绍一个新的替代 ...
- asp.net MVC 应用程序的生命周期
下面这篇文章总结了 asp.net MVC 框架程序的生命周期.觉得写得不错,故转载一下. 转载自:http://www.cnblogs.com/yplong/p/5582576.html ...
- 创建ASP.NET Core MVC应用程序(6)-添加验证
创建ASP.NET Core MVC应用程序(6)-添加验证 DRY原则 DRY("Don't Repeat Yourself")是MVC的设计原则之一.ASP.NET MVC鼓励 ...
- 创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段
创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段 添加查询功能 本文将实现通过Name查询用户信息. 首先更新GetAll方法以启用查询: public async ...
- 创建ASP.NET Core MVC应用程序(4)-添加CRUD动作方法和视图
创建ASP.NET Core MVC应用程序(4)-添加CRUD动作方法和视图 创建CRUD动作方法及视图 参照VS自带的基架(Scaffold)系统-MVC Controller with view ...
- 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表
创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...
- 创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL
创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL 用惯.NET的研发人员都习惯性地使用SQLServer作为数据库.然而.NET Core ...
- 创建ASP.NET Core MVC应用程序(1)-添加Controller和View
创建ASP.NET Core MVC应用程序(1)-添加Controller和View 参考文档:Getting started with ASP.NET Core MVC and Visual St ...
- 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序
学习ASP.NET MVC系列: 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器 学习ASP ...
随机推荐
- JavaScript语言核心之词法结构
编程语言的词法结构是一套基础性规则,用来描述如何使用这门语言来编写程序.作为语法的基础,它规定了诸如变量名是什么样的.怎么写注释,以及程序语句之间如何分割的等规则. 1.1字符集 JavaScript ...
- js之面向对象----封装篇
学习了一天的面向对象总结一下,共分为三类 - -! 老规矩 第一部分是概念性知识!!! 面向对象编程,我们可以把他想象成我们在造人.一个对象便是一个人,这个人有胳膊有腿,这便是一个对象的属性或者方法. ...
- Codeforces Round #266 (Div. 2)-C,D
C - Number of Ways 直接暴力从前往后寻找.假设找到1/3sum的位置,那么标记++.找到2/3的位置,总数加上标记数. #include<stdio.h> #includ ...
- 完全背包 (DP)
输入: n=3 (w,v)={(3,4),(4,5),(2,3)} W=7 输出: 10(0号物品选1个,2号物品选2个) 和01背包的区别是物品可以任意选择. 令dp[i+1][j]=从前i种物品中 ...
- Alice's Chance
id=1698" style="background-color:rgb(51,255,51)">主题链接 意甲冠军: 爱丽丝要拍电影.有n部电影,规定爱丽丝第i部 ...
- 离github在导入dubbo工程
dubbo移动到github目前已经有一些时间,我们可能根本不习惯使用github.因此,我们仍然使用以前的版本号. 由于某些原因.阿里下载前关闭.在这里给大家提供一个私有地址: 链接:http:// ...
- CSS3+HTML5特效8 - 顶部和右侧固定,左侧随窗口变化的布局
原文:CSS3+HTML5特效8 - 顶部和右侧固定,左侧随窗口变化的布局 效果演示 实现原理 使用3个div(一个是顶部栏,一个是左侧栏,一个是右侧栏): 使用checkbox作为判断是否显示和隐藏 ...
- win7安装ruby on rails开发环境
前言 我们看到很多文章说ruby环境windows它是非常困难的基础上,这将是各种稀奇古怪的问题,因此,建议linux和mac发. 可是我依照教程搭了下,问题也不算太多.总过大概花费了2个半小时左右就 ...
- ASP.NET MVC 文件上传和路径处理
ASP.NET MVC 文件上传和路径处理总结 目录 文件的上传和路径处理必须解决下面列出的实际问题: 1.重复文件处理 2.单独文件上传 3.编辑器中文件上传 4.处理文章中的图片路径 5.处理上传 ...
- 【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对照
近期在开发小组在研究:BS项目中是利用'MVC框架'还是继续沿用'三层'的问题. 由于曾经的.NET项目大多数都是利用三层开发的,所以大多数人都可以对三层进行熟练地运用.而项目的開始我们也曾听说过MV ...