恢复文件上传寻找流

发布于 2024-11-17 07:17:39 字数 122 浏览 2 评论 0原文

我正在从客户端上传文件到服务器...当服务器程序接收流时,不支持属性 Length 并且 CanSeek 为 false,如何进行查找?如果我在客户端中读取它并作为消息契约中的消息头发送,我可以获得长度,但不知道如何查找。想法??

I am uploading files from clients to server... when the server program receives the stream, property Length is not supported and CanSeek comes false, how would seeking be possible?? I can get the length if I read it in the client and send as a message header in the message contract but don't know how to seek. Ideas??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

街角迷惘 2024-11-24 07:17:39

WCF 不是文件传输技术。此外,内部使用的StreamFormatter不支持seek,因为分布式应用程序中seek的整个想法是无稽之谈。为了使其正常工作,内部流必须是网络协议,并且对传输的数据进行控制流,但事实并非如此。在内部,流只是字节数组。这意味着即使 WCF 支持查找,您仍然需要在查找位置之前传输所有数据。

如果您需要恢复功能,您必须自己实现它,方法是手动创建数据块并上传它们并将它们附加到服务器上的文件中。服务器将控制最后正确接收的块并拒绝已经通过的块。 MSDN 有示例实现,使用此作为自定义通道。

WCF is not technology for file transfers. Moreover seek is not supported by StreamFormatter used internally because the whole idea of seek in distributed application is nonsense. To make this work correctly internal stream will have to be network protocol with control flow over transferred data which is not. Internally the stream is only array of bytes. It means that even if WCF supported seeking you would still need to transfer all data before seek position.

If you need resume functionality you must implement it by yourselves by manually creating chunks of data and uploading them and appending them to file on the server. Server will control last correctly received chunk and refuse chunks already passed. MSDN has sample implementation using this as custom channel.

三月梨花 2024-11-24 07:17:39

此处的流示例 http://go.microsoft.com/fwlink/?LinkId=150780 做你想做的事。

WCF\Basic\Contract\Service\Stream\CS\Stream.sln

示例在此处进行了解释

http://msdn.microsoft.com/en-us/library/ms751463.aspx

The stream sample here http://go.microsoft.com/fwlink/?LinkId=150780 does what your trying to do.

WCF\Basic\Contract\Service\Stream\CS\Stream.sln

the sample is explained here

http://msdn.microsoft.com/en-us/library/ms751463.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文