加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – 通过HTTP上传大文件

发布时间:2020-05-25 09:37:59 所属栏目:PHP 来源:互联网
导读:我需要从桌面应用程序上传到一个服务器上的可能很大的(如10到100的兆字节)文件.服务器代码用 PHP编写,桌面应用程序在C / MFC中.我希望能够在上传失败的时候恢复文件上传,因为这个软件将被用于不可靠的连接.我有什么选择?我发现了许多C上的HTTP上传组件,例如

我需要从桌面应用程序上传到一个服务器上的可能很大的(如10到100的兆字节)文件.服务器代码用 PHP编写,桌面应用程序在C / MFC中.我希望能够在上传失败的时候恢复文件上传,因为这个软件将被用于不可靠的连接.我有什么选择?我发现了许多C上的HTTP上传组件,例如 http://www.chilkatsoft.com/refdoc/vcCkUploadRef.html,它看起来不错,但似乎并没有处理一半的上传的’resume'(我认为这是因为HTTP 1.1不支持).我也看过BITS服务,但上传它需要一个IIS服务器.到目前为止,我唯一的选择似乎是将我要上传的文件切成较小的部分(比如每个1兆像素),将它们全部上传到服务器,并用PHP重新组合,并运行校验和,看看是否一切正常.要恢复,我需要在上传开始时采取某种形式的“握手”,以确定服务器上已经有哪些部分.我必须手动编码,还是有人知道一个图书馆,为我做这一切,甚至是一个完全不同的解决方案?由于维护原因,我宁愿不要转换到支持简历的另一个协议(防火墙等的潜在问题) 我迟了八个月,但我只是偶然发现了这个问题,并且很惊讶,没有提到webDAV.您可以使用HTTP PUT方法上传,并包含一个Content-Range标头来处理恢复等. HEAD请求会告诉您文件是否已经存在,它是多大的.所以也许这样的事情:

1)HEAD远程文件

2)如果它存在,并且size ==本地大小,上传已经完成

3)如果尺寸<本地大小,添加一个Content-Range标头来请求并寻找到本地文件中的适当位置. 4)使PUT请求上传文件(或文件的一部分,如果恢复) 5)如果在PUT请求期间连接失败,请重新开始步骤1 您还可以列出(PROPFIND)和重命名(MOVE)文件,并用dav创建目录(MKCOL). 我相信Apache和Lighttpd都有dav扩展.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读