请问想做个多线程的上传文件系统怎么做啊?还要支持断点续传!请各位达人赐教!

时间:2022-09-28 09:03:43
首先我想做个断点续传技术的页面,支持用户断点续传,然后考虑到如果文件大的话可能速度会慢,所以想到多线程,可是没啥思路,请各位达人赐教!谢谢了!

8 个解决方案

#1


并不是多线程速度就快.

现在的ADSL上传带宽被限制在36k.

#2


那断点续传呢?

#3


如果保证文件名相同或者是相同的标识,断点问题应该不大,断点续传的原理就是按照块读取文件,然后上传,你只要记录好上次上传的位置就好

#4


http协议里面没有分段上传吧
你可以写一个ActiveX来上传

#5


asp.net页面通常只能使用流行的浏览器支持的技术,扩展的客户端开发技术不在asp.net范围内。

假设你使用asp.net开发一个webService或者WCF服务,它的api可以这样设计(以WCF为例):

[ServiceContract]
public interface IFileService
{
   [OperationContract]
   void Upload(string fileName, long position, byte[] data);
}

这表示对文件fileName,从随机存取位置position开始写入data。客户端的应用程序(但是不是asp.net,因为asp.net只是一个服务器程序,客户端还是浏览器、脚本而不是asp.net在操作的)可以读取本地文件,然后(例如)按照每10k字节作为一个块去顺序或者多线程调用服务,分块的好处在于如果通讯中断则可以断点续传。

不过,客户端工具的开发不是asp.net的内容,asp.net只能在此开发服务端程序。

#6


那如果用C#能不能写成服务端的呢?

#7


谁能给个示例代码啊?谢谢!

#8


up

#1


并不是多线程速度就快.

现在的ADSL上传带宽被限制在36k.

#2


那断点续传呢?

#3


如果保证文件名相同或者是相同的标识,断点问题应该不大,断点续传的原理就是按照块读取文件,然后上传,你只要记录好上次上传的位置就好

#4


http协议里面没有分段上传吧
你可以写一个ActiveX来上传

#5


asp.net页面通常只能使用流行的浏览器支持的技术,扩展的客户端开发技术不在asp.net范围内。

假设你使用asp.net开发一个webService或者WCF服务,它的api可以这样设计(以WCF为例):

[ServiceContract]
public interface IFileService
{
   [OperationContract]
   void Upload(string fileName, long position, byte[] data);
}

这表示对文件fileName,从随机存取位置position开始写入data。客户端的应用程序(但是不是asp.net,因为asp.net只是一个服务器程序,客户端还是浏览器、脚本而不是asp.net在操作的)可以读取本地文件,然后(例如)按照每10k字节作为一个块去顺序或者多线程调用服务,分块的好处在于如果通讯中断则可以断点续传。

不过,客户端工具的开发不是asp.net的内容,asp.net只能在此开发服务端程序。

#6


那如果用C#能不能写成服务端的呢?

#7


谁能给个示例代码啊?谢谢!

#8


up