0

cURL を使用していくつかの投稿データを送信しましたが、ファイルを送信しようとしていますが、途中で迷子になります。ファイル入力のあるフォームを使用しています。次に、cURL がそれをサーバーに送信するようにします。これが私のアップロードページです。 <form action="curl_page.php" method="post" enctype="multipart/form-data"> Filename: <input type="file" name="file" id="file" /> <br /> <input type="submit" name="submit" value="Submit" /> </form>

これが私のcurlページで、いくつかの問題があります。

<?php
$tmpfile = $_FILES['file']['tmp_name'];
$filename = basename($_FILES['file']['name']);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://my_server/file_catch.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$data = array(
    'uploaded_file' => '@'.$tmpfile.';filename='.$filename,
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
curl_close($ch);
?>

サーバー上の file_catch.php は次のようになります。

<?php
$folder = "audio/";

$path = $folder . basename( $_FILES['file']['name']);

if(move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
    echo "The file ".  basename( $_FILES['file']['name']). " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}
?>

助けてくれてありがとう!

4

1 に答える 1

2

投稿リクエストで取得したファイルを送信していません。以下のコードを使用して、CURL リクエストを介してファイルを送信します。

$tmpfile = $_FILES['image']['tmp_name'];
$filename = basename($_FILES['image']['name']);

$data = array(
    'uploaded_file' => '@'.$tmpfile.';filename='.$filename,
);

$ch = curl_init();   
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// set your other cURL options here (url, etc.)

curl_exec($ch);

詳細については、以下のリンクを確認してください PHP のフォーム POST から cURL 経由でファイルを送信します。

于 2012-12-03T05:59:42.717 に答える