Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/05/2010, 11:14
marx-pola
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 17 años
Puntos: 1
upload multiple de fotos: no me suben algunas fotos al servidor

Hola a todos! Tengo el siguiente script para subir fotos y grabar los nombres de las mismas en una BDD. El problema es que al cargar varias fotos, a veces sube todas al servidor y a veces no. Los nombres de los archivos los graba perfectamente en la BDD.

Les muestro las 2 páginas que uso:

form.html

Código HTML:
<script type="text/javascript">
var numero = 0;

// Funciones comunes
c= function (tag) { // Crea un elemento
   return document.createElement(tag);
}
d = function (id) { // Retorna un elemento en base al id
   return document.getElementById(id);
}
e = function (evt) { // Retorna el evento
   return (!evt) ? event : evt;
}
f = function (evt) { // Retorna el objeto que genera el evento
   return evt.srcElement ?  evt.srcElement : evt.target;
}

addField = function () {
   container = d('file');
   
   span = c('SPAN');
   span.className = 'archivo';
   span.id = 'archivo' + (++numero);

   field = c('INPUT');   
   field.name = 'archivo[]';
   field.type = 'file';
   
   a = c('A');
   a.name = span.id;
   a.href = '#';
   a.onclick = removeField;
   a.innerHTML = 'Quitar';

   span.appendChild(field);
   span.appendChild(a);
   container.appendChild(span);
}
removeField = function (evt) {
   lnk = f(e(evt));
   span = d(lnk.name);
   span.parentNode.removeChild(span);
}
</script>

<form action="uploadok.php" method="post" enctype="multipart/form-data">
   <label for="to"></label>
	<label>Archivos Adjuntos:</label> <a href="#" onClick="addField()">Agregar Archivo</a>
	  <div id="file"></div>
		  <input type="submit" value="upload" id="archivo" name="archivo" />
          <input type="hidden" name="action" value="upload" />
          </form> 
Y el archivo que recibe la info para subir al server y grabar los datos en la BDD:

uploadok.php
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 (
$_POST["action"] == "upload") {

    
$i=0;
    
$tmpfile $_FILES['archivo']['tmp_name'];
    
$imagen $_FILES['archivo']['name'];
    
$usuario_db "****";
    
$pass_db "****";
    
$ftppath "../prueba2/images/";
    
$ftpurl "ftp://".$usuario_db.":".$pass_db."@".$ftppath;

    
//places files into same dir as form resides
    
foreach ($_FILES["archivo"]["error"] as $key => $error) {
      if (
$error == UPLOAD_ERR_OK) {
         echo
"$error_codes[$error]";
         
move_uploaded_file(
           
$_FILES["archivo"]["tmp_name"][$key],
           
$_FILES["archivo"]["name"][$key]) or die("Ocurrio un problema al intentar subir el archivo.");

           
$imagen=$_FILES["archivo"]["name"];
           
           echo 
"nombre de archivo:".$imagen[$i]."<br>";
           
mysql_query("INSERT INTO imagenes(imagen) VALUES ('$imagen[$i]') "$conexion) or die ("Problemas al subir los archivos.");
        
$i++;
      }

    }

La verdad, no me tira error ni nada, y no entiendo por qué a veces sube todas las fotos y a veces no sube al server de a varias fotos a la vez.
¿Puede ser que el AJAX de la primer página esté causando esto? Sino, les agradecería me puedan orientar.

Gracias a todos y saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.