在git上提供了java、nodejs、c#后台服务方式;在这里我要用c#作为后台服务;地址请见:https://github.com/23/resumable.js
我现在visual studio的环境是2013,mvc4,framwork4.0;我们来看git上给出的c#示例:
samples/DotNET/ 在文件中包含两个文件Controllers Models,在两个文件里各有一个文件;
我把他部署到自己项目里边,却没有达到自己预定的效果,我是这样更改的;
一、我先把我的类库项目调成framwork4.5支持controllers中的代码不然的话代码画红线:
二、我把mvc5某些特性的标签改成mvc4相关的,我把其中【NoAction】等的给去掉了;诸如:
改成
三、然后我把java里的测试html考到我的项目中去,作为测试页面;跑起来后发现分块文件上传正常,但是最后文件也不全;
就是最终的文件和我上传的不一致,不是多了就是少了;
index.html中我把target改成自己的请求地址。
四、通过反复调试我发现其中后台代码中这个参数始终是1.
最后测试得知这个参数压根就没传,但是后台还是根据这个参数计算的上传及合并次数;有了这个线索之后
五、找到resumable.js这个文件,找到发送请求的地方:
着重显示的部分是我新加的参数,根据参数自己计算了下通过 文件总大小/每次上传大小 计算出该文件上传成功后需要分为几块。可以根据行数自行调整。
上边这个请求是判断文件块是否存在;
着重画线的部分是我新加的参数;
六、通过调试,后台也要做相应调整。
在删除临时文件方法中加入了进程暂停;
七、跑程序测试。最终的结果是文件上传成功后,会每隔1000毫秒删除一个块文件。上传的文件和最终upload中的文件大小一致;
最终结果:图示:
源代码下载:http://files.cnblogs.com/files/gaolizhong/csharp%E6%96%AD%E7%94%B5%E7%BB%AD%E4%BC%A0.7z