会打代码的扫地王大爷
2015-01-28 00:03
采纳率: 33.3%
浏览 4.7k

C#大文件分块上传原理问题

我对大文件分块上传的概念是,通过offset每次读取1M文件流,再通过http发送Content-Range和这1M文件流,换句话说分块上传是不是需要每次都发送请求头?我看见到有些代码,只发送一次文件头,然后不断发送文件流,虽然没成功,但是留下了疑惑

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 91program 2015-01-28 02:56
    已采纳

    通过 HTTP 进行大数据传输,不是好的选择。
    如果一定要用 HTTP,传输时 HTTP 协议头肯定是不可少的。至于其中的数据,由于每次 HTTP 都是一次 Socket 连接、数据传输、断开的过程,加上发送分块后,各块的传输是由发送端控制的,只需要按顺序发送。这样服务器端可以不需要处理分块信息,就可以完成文件的接收。
    但如果为了加快传输速度,想做类似于分块同时传输的过程,则必须要加入分块信息。以方便服务器按分块的信息同时接收不同的块,并保证最后拼接的文件是正确的。

    点赞 评论
  • blownewbee 2015-01-28 01:43

    这个主要看服务器怎么接收。文件分块上传不是标准。这个可以自由由开发者决定,当然,在提交数据的时候,必要的元数据是需要的,比如块号、数据长度。
    服务器返回是否接收成功等等。但是是放在头上还是放在数据内就不一定了。

    点赞 评论

相关推荐 更多相似问题