Bueno... a pesar de haber cambiado el código, sigo sin poder recoger el array de los archivos a subir al servidor. Cuando selecciono 2 o más archivos, el primero me lo sube pero el resto no.
Les muestro el nuevo código:
Formulario:
Código HTML:
<script language="javascript">
//var upload_number = 1;
function addFileInput() {
var d = document.createElement("div");
var file = document.createElement("input");
file.setAttribute("type", "file");
file.setAttribute("name", "attach[]");
d.appendChild(file);
document.getElementById("moreUploads").appendChild(d);
file.onchange = setBlock;
document.getElementById('moreLink').style.display = 'none';
// upload_number++;
}
function setBlock() {
document.getElementById('moreLink').style.display = 'block';
}
</script>
</head>
<body>
<form action="images/uploadok.php" method="post" enctype="multipart/form-data">
<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" value="upload" id="attach" name="attach" />
<input type="hidden" name="action" value="upload" />
</form>
Y este el upload:
Código PHP:
//conexion a la db
include('conectar.php');
// conexion a la base
$conexion = mysql_connect($host_db, $usuario_db, $pass_db) or die ("no se ha podido conectar a la BD");
mysql_select_db($base_db, $conexion) or die ("no se ha podido seleccionar la BD");
if(isset($_FILES["attach"])) {
$tmpfile = $_FILES["attach"]["tmp_name"];
$imagen = $_FILES["attach"]["name"];
$usuario_db = "***";
$pass_db = "***";
$base_db = "***";
$ftppath = "../images/";
$ftpurl = "ftp://".$usuario_db.":".$pass_db."@".$ftppath;
$total = count($_FILES["attach"]["name"]);
for ($i = 0; $i < $total; $i++){
$tmpfile = $_FILES["attach"]["tmp_name"][$i];
$tamano = $_FILES['attach']['size'][$i];
$tamano_max="1048576";
if($tamano <= $tamano_max){
move_uploaded_file($_FILES['attach']['tmp_name'][$i], $_FILES["attach"]["name"][$i]);
$imagen=$_FILES["attach"]["name"][$i];
echo "nombre de archivo:".$imagen."<br>";
mysql_query("INSERT INTO imagenes(imagen) VALUES ('$imagen') ", $conexion) or die ("Problemas al subir los archivos.");
}else{
echo "<div align = 'center'>La imagen que intenta grabar, excede el peso requerido. El maximo de peso es 500KB.</div>";
echo "<br /><br /><br />";
echo "<div align = 'center'><a href='javascript:history.back()'><< Clic aqui para regresar.</div></a>";
}
}
}
¿Me pueden decir por favor por qué solo me toma el primer archivo y los otros no?
Muchas gracias y saludos.