一、问题来源
近些时候,处理项目的时候发现如果用户上传大文件的时候使用HtmlInputFile通过httppostfilebase 来实现上传,如果文件较小的话较小的话,上传没有问题(4M),较大通过修改Web.Config的配置
<httpRuntime executionTimeout="36000" delayNotificationTimeout="36000" maxRequestLength="2147483647" targetFramework="4.5"></httpRuntime>
executionTimeout属性是用于限制文件上传服务器的响应时间, maxRequestLength属性来限制文件上传的大小.
但是问题来了,文件上传是可以上传上去,但是上传花费的时间太长.
用户的表情
所以通过组件上传来减少上传的时间,增加上传速度是一个不错的方法.
二、 webuploader组件
1、webuploader的官网:http://fex.baidu.com/webuploader/
2、组成部分:html+js+ashx(C#)
3、限制上传的类型(修改webuploader.js)
限制上传文件的类型为图片和PDF:
accept: {
title: 'Images,Applications',
extensions: 'gif,jpg,jpeg,bmp,png,pdf',
mimeTypes: 'image/*,application/pdf'
}
4、原理:对于小文件,直接进行保存上传.
对于大文件的话,那么就要进行分片上传(fileupload.ashx),然后在文件中进行分块的文件的合并(MergeFiles.ashx)
使用这个组件所要修改的地方:
1、 文件路径
2、上传的文件的保存路径
3、前台的控件的id
如果想详细了解webuploader组件的使用,可以去官网了解一下
http://fex.baidu.com/webuploader/getting-started.html