【问题标题】:How do you generate Boundary In PHP?你如何在 PHP 中生成边界?
【发布时间】:2012-08-03 06:20:05
【问题描述】:

我正在使用 Curl 库来模拟“multipart-form-data”提交,然后我注意到我需要生成一个唯一的字符串,但我不知道该怎么做。

例如:

Content-Type: multipart/form-data;  
boundary=---------------------------491299511942
Content-Length: 95418
-----------------------------491299511942
Content-Disposition: form-data; name="a"
-----------------------------491299511942
Content-Disposition: form-data; name="b"
/page.asp
-----------------------------491299511942
Content-Disposition: form-data; name="c"
-----------------------------491299511942
Content-Disposition: form-data; name="d"
true
-----------------------------491299511942
Content-Disposition: form-data; name="e"
1
-----------------------------491299511942
Content-Disposition: form-data; name="f"

如何生成该边界?来自图书馆或只是一些黑客?

编辑:在本例中 Boundary=491299511942

【问题讨论】:

    标签: php curl multipartform-data boundary


    【解决方案1】:

    如果您使用 curl,则不需要“手动”准备数据

    $post_data = array(
        'a' => '@/absolute/path/to/file',
        'b' => '@/absolute/path/to/file',
    );
    curl_setopt($ch, CURLOPT_POST, true)
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
    

    【讨论】:

    • 嗯,但是边界呢?
    • 我正在使用 LiveHttpHeaders 并且我已经看到像上面的例子一样发送的数据......通常我需要像这样准备数据?
    • 如果给定 '@filename' POST 数据,Curl 将正确生成 multipart/form-data 请求。您不需要手动生成它们。如果你不需要传输文件,那么你不需要 multipart/form-data 开始。
    【解决方案2】:

    要回答实际问题,您可以这样做:

    $boundary = hash('sha256', uniqid('', true));
    

    【讨论】:

      猜你喜欢
      • 2010-12-26
      • 2011-01-05
      • 1970-01-01
      • 2021-12-23
      • 2015-03-17
      • 1970-01-01
      • 2020-03-03
      • 2015-11-10
      • 1970-01-01
      相关资源
      最近更新 更多