论文关键词:大文件 共享资源 文件类型转换 Asp.Net
论文摘要:本文以Asp.Net为共享资源平台的开发技术,分别研究大文件上传,Flash文件、Word文件、PPT文件、EXCEL文件、图片文件等常用的资源类型上传的解决方案。
一、建设背景
利用信息技术为教学服务,实现教学核心业务的数字化已经成为高职院校信息化建设的重点。教学资源包括专业资源和课程资源,是高职院校教育教学活动中最有价值的组成部分,教学资源建设的水平,直接决定了高职院校信息化教学的水平。
二、关键问题
(一)大文件上传
Asp.Net下对文件上传,默认限制大小为4MB。要解决这个限制,需要在Web.Config文件里添加如下代码:
maxRequestLength:指示ASP.NET支持的HTTP方式上载的最大字节数。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以KB为单位。默认值为4096KB(4MB)。executionTimeout:指示在被ASP.NET自动关闭前,允许执行请求的最大秒数。
(二)多文件上传
Asp.Net自带的FileUpLoad控件,在实现多文件上传方面比较繁琐。同时,界面不友好,没有进度提示。综合考虑上传效率和操作性能,这里选择SWFUpload作为多文件上传的组件。该组件可以同时上传多个文件,类似AJAX的无刷新上传,可以显示上传进度,良好的浏览器兼容性,兼容其他JavaScript库,支持Flash。
SWFUpload的初始化与配置
首先,在页面中引用SWFUpload.js
然后,初始化SWFUpload
var swfu;
window.onload=function(){
swfu=new SWFUpload({upload_url:"upload.ashx",flash_url:"swfupload/swfupload.swf",
file_size_limit:"1000 MB",
});};
由于SWFUpload的参数比较多,这里就不列出来了,可以参考其帮助文档按需求进行设计。
最后,在upload.ashx文件中使用SaveAs保存文件,并将文件信息存储到数据库中。
(三)Word文件、PPT文件、EXCEL文件转SWF文件
为了有效的保护上传资源的版权信息,同时最大程度的将上传文档原样呈现给用户,可以考虑将上传文档转换成SWF文件,然后供用户浏览。有许多成功的应用,如百度文库、新浪共享文库、豆瓣文库等。在Asp.Net下实现不同类型文件转SWF文件,这里使用FlashPaper。它是Macromedia推出的一款电子文档类工具,FlashPaper允许我们将任何类型的可打印文档转换为SWF或PDF文档,可以通过各种平台来查看生成的FlashPaper文档,包括文档的格式、文档中的图像、字体、特殊符号、源文档的颜色,而不必理会这个文档原来是由哪个平台、哪个应用程序创建的。
FlashPaper的配置与使用
首先,下载并安装FlashPaper。
然后,定义公共的文件转换方法,代码如下:
public void ProcessExec(string sourceFileName,string outPutFileName)
{
string flashPrinter = Server.MapPath("~/FlashPaper/FlashPrinter.exe");
Process pss = new Process();
pss.StartInfo.FileName = flashPrinter;
pss.StartInfo.Arguments = string.Format("{0} {1} -o {2}", flashPrinter, sourceFileName, outPutFileName);
pss.Start();
pss.WaitForExit();
pss.Close();
pss.Dispose();
System.Threading.Thread.Sleep(4000);
}
最后,在IIS下部署的配置,请把IUSR_xxx授权到读写的文件夹。在IIS的应用程序池中的标识预定义账户修改成本地系统,就拥有了全部的权限,就可以实现了。
总结,以上讨论了基于Asp.Net教学资源共享平台多种资源上传时需要解决的问题及使用的相关技术,由于部分代码过多,没有详细列出来。本教学资源共享平台已经在Windows Server 2003,IIS6,Microsoft SQL Server 2005环境下成功测试通过。
参考文献:
陈鹏.浅析教学资源共享平台建设[J].决策与信息,2011,6
李颖云.基于Asp.Net的文件上传和下载[J].电脑知识与技术,2007,9