PHPを使用して、あるサーバーから別のサーバーに画像ファイルを転送するのに、cURLを使用しています。これは私のcURLのコードです:複数のファイルをcURLでアップロードする
// Transfer the original image and thumbnail to our storage server
$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_URL, 'http://' . $server_data['hostname'] . '.localhost/transfer.php');
curl_setopt($ch, CURLOPT_POST, true);
$post = array(
'upload[]' => '@' . $tmp_uploads . $filename,
'upload[]' => '@' . $tmp_uploads . $thumbname,
'salt' => 'q8;EmT(Vx*Aa`fkHX:up^WD^^b#<Lm:Q'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$resp = curl_exec($ch);
これは私がアップロードしてるサーバー上transfer.phpのコードです:
if($_FILES && $_POST['salt'] == 'q8;EmT(Vx*Aa`fkHX:up^WD^^b#<Lm:Q')
{
// Save the files
foreach($_FILES['upload']['error'] as $key => $error)
{
if ($error == UPLOAD_ERR_OK)
{
move_uploaded_file($_FILES['upload']['tmp_name'][$key], $_FILES['upload']['name'][$key]);
}
}
}
すべての離れて一つの小さな論理エラーから、動作しているようです。転送先のサーバーに保存されるファイルは1つだけです。これはおそらく私の投稿フィールドの配列に両方の画像upload[]
を呼び出しているからですが、それ以外の方法はわかりません。私はこれを模倣しようとしています:
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
私はこれを動作させる方法を知っていますか?ありがとう!
これは何も吐き出さず、移動が大丈夫だったことを意味します。ターゲットディレクトリは、transfer.phpスクリプトと同じディレクトリです。これはディレクトリ構造を持たないストレージサーバです。 – Josh
'print_r($ _ FILES)'を実行して、ファイル名などのために何が起こっているのかを正確に見てください。両側があなたの支配下にあっても、ファイル名をそのまま使用すると私は緊張します。 –