终端和PHP卷曲版本的差异

时间:2015-06-17 22:08:07

标签: php curl terminal ubuntu-12.04

我正在尝试使用终端中的其他参数上传文件,我使用-F参数来组合我需要的所有参数,这是我得到的:

curl -H "Content-Type:multipart/form-data" -F "video=@174deab3-a7c6-4410-a304-d7ee49b28900.mp4" -F "videoExt=mp4" -F "videoSize=10230" -F "thumbExt=png" -F "thumb=IufIsduSii823" -F "id=8" http://test.dev/test.php

问题在于处理方(test.php) $ _ FILES 数组为空。

然后我尝试制作一个简单的html表单,将一个文件发布到处理程序,然后我尝试使用php_curl发出curl请求。这是代码:

    $postargs = [
        'videoExt' => 'mp4',
        'id' => 8,
        'thumb' => 'IkJdfjiaskdkI*82',
        'thumbExt' => 'png',
        'videoSize' => '10240'
    ];
foreach ($_FILES as $param => $file) {
        $postargs[$param] = '@' . $file['tmp_name'] . ';filename=' . $file['name'] . ';type=' . $file['type'];
    }

    $header = array("Content-type: multipart/form-data");
    $ch = curl_init('http://localhost:8080');
    curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, false);
    curl_setopt($ch,CURLOPT_ENCODING,"");
    curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch,CURLOPT_POST,TRUE);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$postargs);
    curl_exec($ch);
    curl_close($ch);

此脚本成功向处理程序发出curl请求,并上传文件。请告知有什么区别,如何在终端实现这一点。

1 个答案:

答案 0 :(得分:0)

对我来说,请尝试使用div { margin:0 0 20px; background:green } div:after { content:''; display:block; clear:both; } div.first { float:left; margin:0; } div.second { float:right; margin:0; } 选项,例如:

-i
  

-i, - include在输出中包含协议头(H / F)