我一直致力于Android中的文件上传,发现HTTP和FTP都可用于文件上传,但Android本身支持HTTP,但FTP通过 Apache commons library ,也发现两者都有自己的优点和缺点 但不是移动视角 ,因为在移动网络中网络中断很常见,
所以我的问题
1)无论手机中的内容是什么,或者使用FTP都可以,我是否应该坚持使用HTTP多部分文件上传
2)我的服务器是FTP存储库,我仍然可以使用HTTP上传而不会出现问题
3) FTP是否像HTTP一样使用分段上传,或者在频繁休息时如何处理网络问题
答案 0 :(得分:2)
错误的问题。客户端操作系统并不重要,也不应该决定您的技术。任何一个都有图书馆。两者都有优势,选择适合您用例的那个。这可能是你应该问的问题。
问题2-没有。 FTP和HTTP是不同的协议。你使用另一个。您通常可以在浏览器中查看FTP,因为浏览器会实现这两种协议。使用HTTP与FTP服务器通信只是不起作用。
答案 1 :(得分:2)
1)无论手机中的内容是什么,或者使用FTP都可以,我是否应该坚持使用HTTP多部分文件上传
由于设计,FTP在使用私有IPv4地址的任何网络中都是一个非常糟糕的选择 - 由于IPv4地址的不足,可能是大多数移动网络的情况。虽然它可能在一个网络中工作,但它不能在另一个网络中工作,如果你尝试将FTP与SSL结合起来以保护传输,它会变得更糟。
HTTP和HTTPS通常没有问题。通过使用Range请求,您还可以下载部分文件,这在恢复损坏的下载或仅加载文档的必要部分(如大型PDF文件的某些部分)时非常重要。 FTP具有有限的恢复功能,但没有HTTP范围请求那么有用。
至于恢复上传,FTP具有REST(重启)命令。但您需要首先了解服务器接收了多少数据,以便知道重新启动的位置。 HTTP没有用于上传的内置简历。您可以在POST或PUT请求中使用Content-Range
标头,但您的服务器需要了解如何处理此标头。或者您可以将上传分散到多个请求上,这些请求再次需要特殊的服务器端代码来重建服务器上的原始文件。
两种协议的开销大致相同,除了非常小的文件外,其他任何内容都可以忽略。
2)我的服务器是FTP存储库,我仍可以使用HTTP上传而不会出现问题
如果您的服务器没有HTTP接口,则无法使用HTTP。但只是描述" FTP存储库"没有提供有关其访问方式的足够信息。
3)FTP是否像HTTP一样使用分段上传,或者在频繁休息时如何处理网络问题
如果它坏了你需要找到上传重启的位置(检查远程长度),然后使用REST命令。
答案 2 :(得分:1)
这取决于你想要的带宽和可靠性;)所以也许所有智能手机操作系统都有相同的答案:
它们都可用于Android,因此您的选择取决于评估这些因素。