Foros del Web » Programando para Internet » PHP »

subir dos imagenes

Estas en el tema de subir dos imagenes en el foro de PHP en Foros del Web. hola a todos, tengo el sgte dilema: tengo un script para subir archivos a una carpeta y guardar los datos en una BD ahora necesito ...
  #1 (permalink)  
Antiguo 05/01/2006, 09:01
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
subir dos imagenes

hola a todos, tengo el sgte dilema:

tengo un script para subir archivos a una carpeta y guardar los datos en una BD

ahora necesito subir dos archivos pero validando que si va uno u otro o ambos

la validacion la hago atraves de un if
para una
Código PHP:
if(!move_uploaded_file($temporal_t,$folder.$nombre_t
para otra
Código PHP:
if(!move_uploaded_file($temporal,$folder.$nombre
y para ambas
Código PHP:
if(!move_uploaded_file($temporal_t,$folder.$nombre_t) && !move_uploaded_file($temporal,$folder.$nombre 
else hace lo que tiene que hacer

el problerma es que no hace lo que tiene que hacer xD
si pongo los dos archivos me dice que no se subieron, pero los sube a la carpeta pero no guarda los datos en BD

que puede ser???

les dejo es script completo

Código PHP:
<?php
       $hostname 
"localhost";
       
$database "bd";
       
$username "root";
       
$password "";
       
$coneccion mysql_pconnect($hostname$username$password) or die(mysql_error());

$titulo $_POST["titulo"];
$bajada $_POST["bajada"];
$ley_port_prensa $_POST["ley_port_prensa"];
//datos de thumnail de la portada
$nombre_t $_FILES["thumb"]["name"];
$temporal_t $_FILES["thumb"]["tmp_name"];
$size_t $_FILES["thumb"]["size"];
//datos imagen cuerpo noticia
$nombre $_FILES["archivo"]["name"];
$temporal $_FILES["archivo"]["tmp_name"];
$size $_FILES["archivo"]["size"];

$ley_detalle $_POST["ley_detalle"];
$contenido $_POST["contenido"];
$seccion $_POST["seccion"];
$HF $_POST["HF"];
$publicada $_POST["publicada"];

$lim_tamano "500000"#500k maximo
$fecha $_POST["dia"]."/".$_POST["mes"]."/".$_POST["anio"];
$folder "../../files/"#cambia el nombre de la carpeta aqui
$ruta_t "$folder$nombre_t";
$ruta "$folder$nombre";
if (
$size<=$lim_tamano && $size_t<=$lim_tamano){

if(!
move_uploaded_file($temporal,$folder.$nombre))  {
         
$insertSQL "INSERT INTO noticias (fecha, titulo, bajada, ley_prensa, ruta_t, nombre_t, ley_detalle, contenido, portada, seccion, publicada) VALUES ('$fecha', '$titulo', '$bajada', '$ley_port_prensa', '$ruta_t', '$nombre_t', '$ley_detalle', '$contenido', '$HF', '$seccion', '$publicada')";
       
mysql_select_db($database$coneccion);
       
$Result1 mysql_query($insertSQL) or die(mysql_error()); ?>
    <script>
    alert("El archivo NO fue ingresado");
    location.href = "noticias.php";
    </script>
<? }
elseif(!
move_uploaded_file($temporal_t,$folder.$nombre_t)){
         
$insertSQL "INSERT INTO noticias (fecha, titulo, bajada, ley_prensa, ley_detalle, contenido, portada, seccion, publicada, ruta, nombre) VALUES ('$fecha', '$titulo', '$bajada', '$ley_port_prensa', '$ley_detalle', '$contenido', '$HF', '$seccion', '$publicada', '$ruta', '$nombre')";
       
mysql_select_db($database$coneccion);
       
$Result1 mysql_query($insertSQL) or die(mysql_error()); ?>
    <script>
    alert("El archivo NO fue ingresado");
    location.href = "noticias.php";
    </script>
<? }
elseif(!
move_uploaded_file($temporal_t,$folder.$nombre_t) && !move_uploaded_file($temporal,$folder.$nombre)){
         
$insertSQL "INSERT INTO noticias (fecha, titulo, bajada, ley_prensa, ley_detalle, contenido, portada, seccion, publicada) VALUES ('$fecha', '$titulo', '$bajada', '$ley_port_prensa', '$ley_detalle', '$contenido', '$HF', '$seccion', '$publicada')";
       
mysql_select_db($database$coneccion);
       
$Result1 mysql_query($insertSQL) or die(mysql_error()); ?>
    <script>
    alert("El archivo NO fue ingresado");
    location.href = "noticias.php";
    </script>
<? }
else{
         
$insertSQL "INSERT INTO noticias (fecha, titulo, bajada, ley_prensa, ruta_t, nombre_t, ley_detalle, contenido, portada, seccion, publicada, ruta, nombre) VALUES ('$fecha', '$titulo', '$bajada', '$ley_port_prensa', '$ruta_t', '$nombre_t', '$ley_detalle', '$contenido', '$HF', '$seccion', '$publicada', '$ruta', '$nombre')";
       
mysql_select_db($database$coneccion);
       
$Result1 mysql_query($insertSQL) or die(mysql_error()); ?>
    <script>
    alert("El archivo fue ingresado exitosamente");
    location.href = "noticias.php";
    </script>
<?    }
    }
?>

si esta muy enredado me dicen xD
saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #2 (permalink)  
Antiguo 05/01/2006, 09:18
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 8 meses
Puntos: 17
Después de pensarlo un rato entendí xq hace eso... Te pongo tu codigo explicandolo y después pienso la solución

Código PHP:
<?php
if(!move_uploaded_file($temporal,$folder.$nombre))  { //ACÁ MUEVE EL ARCHIVO Y DEVUELVE FALSE, PORQUE LO MUEVE CORRECTAMENTE
         
$insertSQL "INSERT INTO noticias (fecha, titulo, bajada, ley_prensa, ruta_t, nombre_t, ley_detalle, contenido, portada, seccion, publicada) VALUES ('$fecha', '$titulo', '$bajada', '$ley_port_prensa', '$ruta_t', '$nombre_t', '$ley_detalle', '$contenido', '$HF', '$seccion', '$publicada')";
       
mysql_select_db($database$coneccion);
       
$Result1 mysql_query($insertSQL) or die(mysql_error()); ?>
    <script>
    alert("El archivo NO fue ingresado");
    location.href = "noticias.php";
    </script>
<? }
elseif(!
move_uploaded_file($temporal_t,$folder.$nombre_t)){ // = QUE EN EL PUNTO ANTERIOR. Ya están subidos los dos archivos y nuevamente tenés un false
         
$insertSQL "INSERT INTO noticias (fecha, titulo, bajada, ley_prensa, ley_detalle, contenido, portada, seccion, publicada, ruta, nombre) VALUES ('$fecha', '$titulo', '$bajada', '$ley_port_prensa', '$ley_detalle', '$contenido', '$HF', '$seccion', '$publicada', '$ruta', '$nombre')";
       
mysql_select_db($database$coneccion);
       
$Result1 mysql_query($insertSQL) or die(mysql_error()); ?>
    <script>
    alert("El archivo NO fue ingresado");
    location.href = "noticias.php";
    </script>
<? }
elseif(!
move_uploaded_file($temporal_t,$folder.$nombre_t) && !move_uploaded_file($temporal,$folder.$nombre)){ //acá NO PUEDE mover ninguno de los dos archivos, porque ya lo movió antes y no existen más en temporal
         
$insertSQL "INSERT INTO noticias (fecha, titulo, bajada, ley_prensa, ley_detalle, contenido, portada, seccion, publicada) VALUES ('$fecha', '$titulo', '$bajada', '$ley_port_prensa', '$ley_detalle', '$contenido', '$HF', '$seccion', '$publicada')";
       
mysql_select_db($database$coneccion);
       
$Result1 mysql_query($insertSQL) or die(mysql_error()); ?>
    <script>
    alert("El archivo NO fue ingresado");
    location.href = "noticias.php";
    </script>
<? }
else{
         
$insertSQL "INSERT INTO noticias (fecha, titulo, bajada, ley_prensa, ruta_t, nombre_t, ley_detalle, contenido, portada, seccion, publicada, ruta, nombre) VALUES ('$fecha', '$titulo', '$bajada', '$ley_port_prensa', '$ruta_t', '$nombre_t', '$ley_detalle', '$contenido', '$HF', '$seccion', '$publicada', '$ruta', '$nombre')";
       
mysql_select_db($database$coneccion);
       
$Result1 mysql_query($insertSQL) or die(mysql_error()); ?>
    <script>
    alert("El archivo fue ingresado exitosamente");
    location.href = "noticias.php";
    </script>
<?    }
    }
?>
La solución sería poner antes de los ifs
Código PHP:
$subida1 move_uploaded_file($temporal,$folder.$nombre);
$subida2 move_uploaded_file($temporal_t,$folder.$nombre_t);

//y hacer los chequeos

if (!$subida1) { 
//...
} elseif (!$subida2) { 
//...
} elseif (!$subida2 && !$subida1) { 
//...
} else {
//...

  #3 (permalink)  
Antiguo 05/01/2006, 10:01
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 9 meses
Puntos: 0
jejeje gracias, funciona de forma espectacular.



gracias
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:35.