-1

次のコードを使用して imagezilla.net に画像をアップロードしています

<form target="my_iframe" action="http://imagezilla.net/api.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file" accept="image/x-png, image/gif, image/jpeg" />
    <input type="hidden" name="apikey" value="" />
    <input type="hidden" name="testmode" value="1" />
    <input type="submit" value="Upload Image" />
</form>

これはうまく機能しますが、クロス ドメイン ルールのために結果を取得する方法がないため、cUrl php に入れようとしています。

<?php
$ch = curl_init("http://imagezilla.net/api.php?file='C:\Anti-Backlash-Nut.jpg'&apikey=''&testmode=1");
$header = array('Content-Type: multipart/form-data');
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);       
curl_close($ch);
echo $output;
?>  

(コードの 2 番目のロットには、簡単なテストとしてファイルが既に含まれています)
php コードの Enctype を正しく動作させることができません (行 $header = ...)。私は何を間違っていますか?

4

2 に答える 2

1

ファイルをアップロードする方法は次のとおりです。

<?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    $post = array(
        "file"=>"@/path/to/myfile.jpg",
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
    $response = curl_exec($ch);
?>
于 2013-04-03T16:33:00.043 に答える
0

GET メソッドを使用してファイルをアップロードしていますが、ファイルは常に POST を使用してアップロードされます。そのためには@、投稿として送信するファイル名の前に配置する必要があります。

ファイル パスの前に送信@すると、cURL がファイルを「multipart/form-data」投稿の一部として送信するようになります。

これを試して

<?php
 $ch = curl_init("http://imagezilla.net/api.php?apikey=''&testmode=1");
 $post = array(
    "file"=>"@C:\Anti-Backlash-Nut.jpg",
);
 curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $output = curl_exec($ch);       
 curl_close($ch);
 echo $output;
?>  
于 2013-04-03T16:48:38.723 に答える