Foros del Web » Programando para Internet » PHP »

Subir varios archivos al servidor

Estas en el tema de Subir varios archivos al servidor en el foro de PHP en Foros del Web. Hola, fijense que tengo un codigo para subir una sola foto el cual es: Código PHP: < form enctype = "multipart/form-data"  action = "?seccion=gb2&accion=nueva"  method = ...
  #1 (permalink)  
Antiguo 08/03/2006, 13:40
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 19 años, 4 meses
Puntos: 2
Subir varios archivos al servidor

Hola, fijense que tengo un codigo para subir una sola foto el cual es:
Código PHP:
<form enctype="multipart/form-data" action="?seccion=gb2&accion=nueva" method="POST">

    <!-- 
MAX_FILE_SIZE must precede the file input field -->
    <
input type="hidden" name="MAX_FILE_SIZE" value="700000000" />
    <!-- 
Name of input element determines name in $_FILES array -->
    <
table width="520" border="0" cellspacing="2" cellpadding="0">
      <
tr>
        <
td bgcolor="#FFFFFF"><font size="3" face="Geneva, Arial, Helvetica, sans-serif" class="margen-iz">Subir Foto (Recuerda, <strong><font color="#FF0000">solo JPG</font></strong>)</font></td>
        <
td><font size="2" face="Geneva, Arial, Helvetica, sans-serif">
          <
input name="userfile" type="file" class="formulario">
        </
font></td>
      </
tr>
      <
tr>
        <
td bgcolor="#FFFFFF"><font size="3" face="Geneva, Arial, Helvetica, sans-serif">&nbsp;</font></td>
        <
td><input type="submit" value="Subir" /></td>
      </
tr>
      <
tr>
        <
td bgcolor="#FFFFFF"><font size="3" face="Geneva, Arial, Helvetica, sans-serif">&nbsp;</font></td>
        <
td>&nbsp;</td>
      </
tr>
    </
table>
    <
br>
</
form
y este es el que sube la foto al servidor y la agrega a la base de datos.
Código PHP:

$numerodefoto
"".rand().".jpg";
$uploaddir 'C:/AppServ/www/ta2005/galeria_fotografica/gb_'.$cat.'/';
$uploadfile $uploaddir $numerodefoto;
//userfile es el campo del formulario
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo 
'<font size="1" face="Geneva, Arial, Helvetica, sans-serif">El Archivo <b>$uploadfile</b> ha sido subido correctamente.</font>';
} else {
echo 
'<font size="1" face="Geneva, Arial, Helvetica, sans-serif">El archivo no se pudo cargar en el servidor.</font>';
}
include(
"conexion.php");
mysql_db_query("$db","insert into fotografias (imagen) values ('$numerodefoto)"); 
lo que queria saber era como hacer para poder usar ese mismo codigo en 5 archivos subidos a la vez al mismo destino y que en la tabla se agreguen como los datgos foto1, foto2, foto3, foto4 y foto5
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #2 (permalink)  
Antiguo 08/03/2006, 13:48
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Te sugiero que le eches un ojo a este link http://www.forosdelweb.com/showpost....&postcount=139
  #3 (permalink)  
Antiguo 08/03/2006, 17:16
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 19 años, 4 meses
Puntos: 2
ya lo vi, pero como lo configuro para que se suban a XX carpeta y a su vez se inserte en una BD??
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #4 (permalink)  
Antiguo 08/03/2006, 20:21
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
tenes q hacer lo siguiente, en el formulario suponiendo q queres subir 3 archivos para hacer el ejemplo mas corto :P pones
<input name="userfile[]" type="file" class="formulario">
<input name="userfile[]" type="file" class="formulario">
<input name="userfile[]" type="file" class="formulario">
osea le agregas los "[]" corchetes, entonces el php lo toma como su fuera un arreglo
y del otro lado, de la pagina php q recibe y procesa los archivos, si siempre vas as subir la misma cantidad de archivos le pones un valor fijo al for y sino haces un for($i=0;count($_FILES);$i++), entonces haces esto
Código PHP:
$carpeta="misimagenes/";
for(
$i=0;$i<3;$i++){
$nombre_archivo=$_FILES['userfile']['name'][$i];
if(
$nombre_archivo!=""){
if(
move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$carpeta.$nombre_archivo)){
echo 
$archivo_nombre." archivo subido";
mysql_query("INSERT INTO tabla (id,nombre_archivo,publico) VALUES ('','$nombre_archivo','si')",$conexion);//guardamos en la Bdd el nombre de la foto
}else{
echo 
$archivo_nombre." no se pudo subir";
}
}

con este codigo podes hacer subida de archivos multiples
saludos espero te sirva
  #5 (permalink)  
Antiguo 12/03/2006, 17:47
 
Fecha de Ingreso: diciembre-2004
Mensajes: 354
Antigüedad: 19 años, 4 meses
Puntos: 2
Perdon por no responder antes, pero estuve fuera de Santiago algunos dias.

Algo no entiendo, este ultimo codigo es para complementar lo que me dieron arriba o es una forma difertente de subir varios archivos?
__________________
Pedro Pablo Vivanco D.
Webmaster todoalbo.cl
[email protected]
http://www.todoalbo.cl
"Dios creo el Cielo, Colo-Colo le puso todas sus Estrellas"
  #6 (permalink)  
Antiguo 21/03/2006, 14:38
Avatar de orochies  
Fecha de Ingreso: septiembre-2003
Ubicación: Guatemala
Mensajes: 260
Antigüedad: 20 años, 7 meses
Puntos: 2
De acuerdo Datos con esos archivos

Cita:
Iniciado por emiliodeg
tenes q hacer lo siguiente, en el formulario suponiendo q queres subir 3 archivos para hacer el ejemplo mas corto :P pones
<input name="userfile[]" type="file" class="formulario">
<input name="userfile[]" type="file" class="formulario">
<input name="userfile[]" type="file" class="formulario">
osea le agregas los "[]" corchetes, entonces el php lo toma como su fuera un arreglo
y del otro lado, de la pagina php q recibe y procesa los archivos, si siempre vas as subir la misma cantidad de archivos le pones un valor fijo al for y sino haces un for($i=0;count($_FILES);$i++), entonces haces esto
Código PHP:
$carpeta="misimagenes/";
for(
$i=0;$i<3;$i++){
$nombre_archivo=$_FILES['userfile']['name'][$i];
if(
$nombre_archivo!=""){
if(
move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$carpeta.$nombre_archivo)){
echo 
$archivo_nombre." archivo subido";
mysql_query("INSERT INTO tabla (id,nombre_archivo,publico) VALUES ('','$nombre_archivo','si')",$conexion);//guardamos en la Bdd el nombre de la foto
}else{
echo 
$archivo_nombre." no se pudo subir";
}
}

con este codigo podes hacer subida de archivos multiples
saludos espero te sirva
Hola el script me ah ayudado a resolver las dudas que tenia de esto jejejej pero ahora me sale un nuevo reto que es el siguiente...

Estoy creando una galeria de imagenes y al script se le pasa el o las imagenes y a cada imagen otros datos como la fecha, una descripción, etc. Y estos se guardan en una base de datos...

Pues el problema que no encuentro como resolver es:

¿Como ago para identificar las variables $_POST que pertenecen a los $_FILES["archivo"]["tmp_name"] y asi guardar guardar los datos correctos para cada imagen?...

Espero una ayuda de vuestra parte...

_un Saludo...
__________________
QMD...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 07:18.