Resulta que estoy tratando de realizar múltiples upluads pero solo me sube el primer archivo seleccionado. Todo este código va en la misma página. Les muestro el código:
Este es el formulario: upload.php
Código HTML:
<form action="" method="post" enctype="multipart/form-data"> <p>Seleccionar archivo: <input type="file" name="attach" id="attach" onchange="setBlock();" /> <div id="moreUploads"></div> <div id="moreLink" style="display:none;"> <a href="javascript:addFileInput();">Agregar otro Archivo</a> </div> <input type="submit" name="enviar" value="Upload" /> <input type="hidden" name="action" value="upload" /> </form>
Código:
Y este el código que procesa los datos para subirlos al servidor:<script language="javascript"> var upload_number = 2; function addFileInput() { var d = document.createElement("div"); var file = document.createElement("input"); file.setAttribute("type", "file"); file.setAttribute("name", "attach"+upload_number); d.appendChild(file); document.getElementById("moreUploads").appendChild(d); upload_number++; } function setBlock() { document.getElementById('moreLink').style.display = 'block'; } </script>
Código PHP:
<?
$rpta = "";
if ($_POST["action"] == "upload") {
$tmpfile = $_FILES['attach']['tmp_name'];
$tmpname = $_FILES['attach']['name'];
$ftpuser = "xxxxxx";
$ftppass = "xxxxxx";
$ftppath = "ftp.miservirod.com/public_html/web/fotos/";
$ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath;
if ($tmpname != "") {
$fp = fopen($tmpfile, 'r');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ftpurl.$tmpname);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($tmpfile));
curl_exec($ch);
$error = curl_errno($ch);
curl_close ($ch);
if ($error == 0) {
$rpta = 'Archivo subido correctamente.';
} else {
$rpta = 'Error al subir el archivo.';
}
} else {
$rpta = 'Seleccionar un archivo.';
}
}
?>
Muchas gracias a todos.
Saludos. Marx.