【问题标题】:How to duplicate a post http request with files without curl?如何使用没有 curl 的文件复制 post http 请求?
【发布时间】:2010-07-11 00:58:52
【问题描述】:

我想从包含文件元素的表单复制 HTTP POST 请求,就好像表单元素上只有 2 个具有不同目标的操作属性一样。

到目前为止,由于某种原因,我无法使用 cURL 成功地做到这一点,所以我正在寻找替代方案(不使用 cURL 库,因此没有 pecl_http)

【问题讨论】:

  • 使用 cURL 有什么问题,也许您应该向我们展示您的代码?
  • 好吧,到目前为止,我在让它与我的文件数组一起工作时遇到了很多麻烦,由于某种原因,它会接受单个文件字段而不是数组,因为它将是某人的下一个是的,我正在添加“@”... $file['tmp_name']
  • 您仍然应该发布您的代码。 “丢失文件类型”是指文件扩展名吗?因为文件上传的'tmp_name'字段没有扩展名...
  • 不,不是扩展名,如果我通过 cURL 发送文件,然后在接收端执行 print_r($_FILES),我得到... [srubch] => Array ( [name] = > php5QMPOU [type] => application/octet-stream [tmp_name] => /tmp/phpJ5uvTa [error] => 0 [size] => 71189 ) 文件将无法工作。我正在考虑根本不使用文件,而只是将文件的内容作为二进制读取,序列化,然后反序列化并在接收端写入文件
  • 如果您编辑问题以反映您遇到的问题,我们可能会帮助您解决这些问题。但是,请编辑问题并使用格式化功能。语法已经够烦人了。

标签: php http curl


【解决方案1】:

http_request,但这是一个 PECL 扩展。我认为你最好使用 cURL,因为它通常在 PHP 安装中可用。

【讨论】:

    【解决方案2】:

    有可能,但并不容易。

    您必须手动制作“multipart/form-data”请求,或者使用 Apache 重写 Content-type 标头,以防止文件数据被解析并使用 $HTTP_RAW_POST_DATAphp://input .之前在 SO 中已经回答了如何做到这两点,但我找不到任何问题。

    【讨论】:

      【解决方案3】:

      您可以使用外部 curl、lwp-request 甚至 wget。

      【讨论】:

        猜你喜欢
        • 2015-05-13
        • 1970-01-01
        • 2021-03-03
        • 2022-08-14
        • 2014-06-29
        • 2013-08-03
        • 2013-07-08
        • 2014-10-11
        • 1970-01-01
        相关资源
        最近更新 更多