Asp.net mvc 大文件上传 断点续传
Asp.net mvc 大文件上传 断点续传 进度条
概述
项目中需要一个上传200M-500M的文件大小的功能,需要断点续传、上传性能稳定、突破asp.net上传限制。一开始看到51CTO上的这篇文章,此方法确实很不错,能够稳定的上传大文件,http://developer.51cto.com/art/201002/183218_1.htm,但是很遗憾的是由于我技术不精湛,无法修改成能够支持断点续传。然后在网上找了很多资料,但是都无法满足我的功能,有些说要ftp,有些说要是Silverlight,都有很多说辞,我也试过很多方法,下载过很多代码,但那都不是我想要的。我想要的是一个简单,功能又齐全的大文件上传功能。
- 只想用http协议,不想走FTP协议
- 只想上传大文件,不想受ASP.NET 2G大小限制
- 不想购买一些付费的上传组件
- 上传过程中能够删除文件
- 上传过程中能够显示进度条
- 上传过程中能够暂停上传
- 上传过程中出现异常,能够接着上传(断点续传)
如果你想满足上述功能,或者想扩展更多功能。你就往下看
在网上找案例、方法期间在一篇文章中给了我很大的启发。
- http://open.dbank.com/wiki/index.php?title=%E6%95%B0%E6%8D%AE%E4%B8%8A%E4%BC%A0 里面的Range属性。
- http://www.cnblogs.com/ASPNET2008/p/3360427.html 里面的分块上传,虽然作者也写了断点续传代码,但是通过我的测试与研究发现,他的代码并没有真正意义上的断点续传,他只是将已经上传的那部分文件流舍弃掉,然后等上传到了那块位置的时候才开始附加到磁盘文件,这样并没有提高上传效率,我的代码就是在他的代码上稍作修改的结果
最终效果图
大文件上传
大文件上传我也不想多说。本文及案例重点是断点续传。大文件上传有很多上传案例,而且都非常不错,也非常成熟。可以google一大把。
断点续传
此方法经测试压缩文件似乎会出现问题
在提前研究这功能期间,一直都有一个思路就是:假如我上传了100M,突然有断网等异常情况,那我下次上传就应该从磁盘文件的最后位置开始上传。
上述思路应该是没有问题的,可是在解决这个问题的时候总是困难重重,服务器端不能直接读取客户端文件,也不能直接要求客户端从什么位置开始读。
然后知道Jquery里面有一款插件叫Jquery File Upload,也就是上面写断点续传哥们用到的插件,它能够对文件进行分块上传,也就是说每次上传只是上传文件的一部分,就像我们.Net操作文件流一样,读取文件的一部分字节。
首先看Jquery File Upload分块后正常情况的报文
请求时发送一个字节区间。我就在响应报文头里面加了一个Range属性,告诉Jquery File upload我当前处理的位置是多少。虽然我到目前都没明白Jquery File Upload是怎么实现的,但是我这样做确实能够让它下次上传同一个文件时它会帮我处理。
由于个人原因,也无法描述的更加好,把源代码贴上供大家下载,希望能够有更好的解决方案出现,也希望能够给大家一点启发与帮助。谢谢
Asp.net mvc 大文件上传 断点续传的更多相关文章
- Asp.net mvc 大文件上传 断点续传 进度条
概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这篇文章,此方法确实很不错,能够稳定的上传大文件,http: ...
- asp.net mvc大文件上传、断点续传功能。
文件夹数据库处理逻辑 publicclass DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject(); ...
- MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器
MVC图片上传.浏览.删除 1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...
- ASP.NET对大文件上传的解决方案
在ASP.NET 开发的过程中,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的做到多线程的操控和上传进度的显示.笔者在此给大家推荐一款简单易用的上传组件,从而快速便捷得解决了 ...
- JS大文件上传断点续传解决方案
1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...
- Web大文件上传断点续传解决方案
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...
- java 大文件上传 断点续传 完整版实例 (Socket、IO流)
ava两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操 ...
- asp.net实现大文件上传分片上传断点续传
HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.a ...
- ASP.NET大文件上传断点续传解决方案
HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...
随机推荐
- java编程接口(1) ------ Swing基金会
本文提出了自己的学习笔记.欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 近期想学下java的界面编程,在此记录下. 大多数的Swing应用都被构 ...
- hdu 3449 (有依赖的01背包)
依赖背包 事实上,这是一种树形DP,其特点是每个父节点都需要对它的各个儿子的属性进行一次DP以求得自己的相关属性. fj打算去买一些东西,在那之前,他需要一些盒子去装他打算要买的不同的物品.每一个盒子 ...
- C# -- 把json字符串转为对象并读取各属性的值
前面2种方法是不需要声明一个Json字符串的类型即可把Json字符串转换为Dictionary对象 而第3种方法则是声明一个Json字符串的强类型对象,然后反序列化为该对象的数据. List<, ...
- TS流文件
简单介绍编辑 随着从HDTV录制的高清节目在网上的流传,烧友们对TS这个名词大概已经不陌生了.但随之而来就是怎样播放.怎样加入字幕等等的一系列问题.本文将重点介绍一下这方面的应用操作. 先来简要介绍一 ...
- word 一些有用的技巧
为了能够word入代码,而且具备代码高亮显示功能.这里我提供一个工具------Notepad++,它具备一般文本的功能,且具备编写代码的功能. 包含代码排版,高亮显示,加入和删除凝视等. 在 语 ...
- 你知道OneNote的OCR功能吗?office lens为其增大威力,中文也识别
原文:[原创]你知道OneNote的OCR功能吗?office lens为其增大威力,中文也识别 OneNote提供了强大的从图片中取出文字的功能,大家只要装上了桌面版OneNote(本人用的2013 ...
- nginx 开展对RT5350
编译成功nginx的mips该平台后,,至make install生成的文件到一个角落rt5350文件系统. 必须指出的是,在,被放置在文件系统中需要安装文件夹和编译一致:候有release的文件夹, ...
- Linux Mysql 权限相关信息 来源于网络
查看用户权限 show grants for 你的用户 比如: show grants for root@’localhost’; mysql> use mysql; Database chan ...
- Java对象比较器对泛型List进行排序-Demo
针对形如:字段1 字段2 字段3 字段n 1 hello 26 7891 world 89 5562 what 55 4562 the 85 452 fuck 55 995 haha 98 455 以 ...
- WPF 读写TxT文件
原文:WPF 读写TxT文件 文/嶽永鹏 WPF 中读取和写入TxT 是经常性的操作,本篇将从详细演示WPF如何读取和写入TxT文件. 首先,TxT文件希望逐行读取,并将每行读取到的数据作为一个数组的 ...