关于curl传输文件的的问题

trine_l 2016-07-23 04:09:46
通过curl的CURLFILE类来实现有分割线的Content-Type为form-data的传输,并且可以不用把文件读入内存,也就不会出现超出内存限制的问题,但是项目需要通过没有分割线的Content-Type为x-www-form-urlencoded的方式传输文件内容,直接设置CURLOPT_POSTFIELDS的变量为文件的数据即可,但是需要把文件读入内存在保存到变量.导致无法传输大的文件,有没有一种方法能不把整个文件读入内存又能通过CURLOPT_POSTFIELDS传输过的方法
...全文
294 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-07-25
  • 打赏
  • 举报
回复
curl 提供有 CURLOPT_INFILE 和 CURLOPT_READFUNCTION 回调
trine_l 2016-07-25
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
Content-Type:x-www-form-urlencoded 是标准的 post 类型声明,但不能传输文件 Content-Type:form-data 是扩展的 post 类型,是为上传文件而扩展的 你不能只想着自己,而把文件内容当作普通字段传输,而不去考虑对方由足够的空间将其转换成文件
正是由于接收方设置的是通过Content-Type:x-www-form-urlencoded 传输二进制,实际上也是可以传输的,才会有这个问题,如果按照浏览器表单方式传输文件,php的curl反而很容易做到.现在好像只能考虑用fsocketopen来实现分段传输了
xuzuning 2016-07-23
  • 打赏
  • 举报
回复
Content-Type:x-www-form-urlencoded 是标准的 post 类型声明,但不能传输文件 Content-Type:form-data 是扩展的 post 类型,是为上传文件而扩展的 你不能只想着自己,而把文件内容当作普通字段传输,而不去考虑对方由足够的空间将其转换成文件

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧