0

cURL に関する基本的な質問がいくつかありますが、cURL のドキュメントでは答えられていません (おそらく、他の人には明らかなためです...)。そのファイルをリモートサーバーに送信する必要があるフォームにファイルタイプの入力があります。cURL コードはフォームのあるページに配置されますか、それともフォームから送信されるページに cURL があり、リモート サーバーに送信されますか?

フォームのhtmlは次のとおりです。

<form action="send.php" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file" /> 
    <br />
    <input type="submit" name="submit" value="Submit" />
</form>

私がやろうとしていることに対して正しいかどうか、またはこれが同じページまたは send.php ファイルにある場合、フォームが移動するかどうかさえわかりません。

$ch = curl_init("http://remoteServer/upload_file.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CUROPT_POSTFIELDS, array('fileupload' => '@'.$_FILES['theFile']      ['tmp_name'])); 
echo curl_exec($ch);`

そして、リモートサーバーには、それを受け取るための次のファイルがあります。

$folder = "files/";
$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

2 に答える 2

0

これを試して

$curlPost = array('fileupload' => '@'.$_FILES['theFile'] ['tmp_name']);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://remoteServer/upload_file.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);

もう一つの例

PHP cURL を使用して画像ファイルをリモートサーバーにアップロードする方法

http://www.maheshchari.com/upload-image-file-to-remote-server-with-php-curl/

于 2012-09-02T10:05:52.500 に答える
0

ブラウザからファイルをアップロードするためにcurlは必要ありません。フォームをリモートサーバーに直接送信してアップロードできます-フォームがその3番目のコードブロックを含むファイルに送信されることを確認してください

于 2012-09-02T07:48:45.453 に答える