0

POSTリクエストを生成しています:

$data['v'] = '2';
$data['file'] = gz compressed data

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);

この後、「ファイル」フィールドは失われます - サーバーに到着しません。他のすべてのフィールドは到着します。私に何ができる?

4

1 に答える 1

2

ファイルをアップロードするときcurl、バイナリ データではなく、ファイルへのフル パスが必要です ('@' 記号を先頭に追加することを忘れないでください)。

$data = array(
    'file' => "@/path/to_your_file_not_binary_data",
    'v' => '2'
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

ここを参照してください: http://www.php.net/manual/en/function.curl-setopt.php

また、Content-Typeヘッダーを指定する必要がある場合:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
于 2013-03-10T20:54:51.580 に答える