1

画像を含むいくつかのデータを投稿したいです。これにはphpでcurlを使用しています。私のコードは以下のとおりです-

 $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_VERBOSE, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0Mozilla/4.0 (compatible;)");
    curl_setopt($ch, CURLOPT_URL, 'http://postacity.co.uk:8080/shine/pp/upload/');
    curl_setopt($ch, CURLOPT_POST, true);
    $post = array(
        'creatorid' => '119',
        'userfile' => '@/temp/fgf.jpg',
        'notice' => 'Image1',
        'catid' => '1',
        'title' => 'bookofzeus',
        'boardid' => '332',
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $response = curl_exec($ch);
    if(curl_errno($ch)) {
        echo 'Error: ' . curl_error($ch);
    }
    else {
        echo $response;
    }
    }

同じエラーが発生するたびに

エラー:フォームポストデータの作成に失敗しました

私は何か間違いをしていますか?私はこの問題を検索しましたが、それでも解決策が見つかりませんでした。

4

2 に答える 2

1

これを参照してください

<?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_VERBOSE, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
    curl_setopt($ch, CURLOPT_URL, _VIRUS_SCAN_URL);
    curl_setopt($ch, CURLOPT_POST, true);
    // same as <input type="file" name="file_box">
    $post = array(
        "file_box"=>"@/path/to/myfile.jpg",
        "username"=>"foobar",
        "password"=>"secret",
        "submit"=>"submit"
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
    $response = curl_exec($ch);
?>

こちらのURLも参考にしてください

http://joshhighland.com/blog/2010/11/27/using-curl-and-php-to-upload-files-through-a-form-post/

http://blogs.digitss.com/php/curl-php/posting-or-uploading-files-using-curl-with-php/

于 2013-07-04T07:19:20.317 に答える
1

ファイルへのパスが問題です:'@/temp/fgf.jpg'

このバグ gescription を確認する必要があります:バグ 50060 - post 配列値が @ で始まる場合、フォームポスト データの作成に失敗しました

この問題の解決策は、たとえばphp フリークにあります。

ファイルへの絶対パスを使用します。

于 2013-07-04T06:33:23.813 に答える