Estoy usando cURL para transferir archivos de imágenes de un servidor a otro usando PHP. Este es mi código cURL:Cargas múltiples de archivos con 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);
Este es el código en transfer.php en el servidor estoy subiendo a:
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]);
}
}
}
Todo parece funcionar, aparte de un pequeño error de lógica. Solo se está guardando un archivo en el servidor al que me estoy transfiriendo. Esto es probablemente porque estoy llamando a ambas imágenes upload[]
en mi matriz de campos de publicación, pero no sé cómo hacerlo. Estoy tratando de imitar haciendo esto:
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
¿Alguien sabe cómo puedo hacer que esto funcione? ¡Gracias!
Eso no escupe nada, lo que significa que la jugada fue correcta. El directorio de destino es el mismo directorio que el script transfer.php. Esto es solo un servidor de almacenamiento, sin estructura de directorio. – Josh
haga un 'print_r ($ _ FILES)' y vea exactamente lo que está pasando para los nombres de archivo y similares. Incluso si ambas partes están bajo tu control, usar nombres de archivos directamente como tú me pone nervioso. –