Foros del Web » Programando para Internet » PHP »

Validar si se cargo un archivo e insertar (upload basico de fotos)

Estas en el tema de Validar si se cargo un archivo e insertar (upload basico de fotos) en el foro de PHP en Foros del Web. Estimados, un saludo cordial a todos, mi pregunta es, tengo que validar un insert, en realidad es asi: tengo un script que me inserta noticias, ...
  #1 (permalink)  
Antiguo 16/08/2014, 20:10
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 5 meses
Puntos: 1
Validar si se cargo un archivo e insertar (upload basico de fotos)

Estimados, un saludo cordial a todos, mi pregunta es, tengo que validar un insert, en realidad es asi: tengo un script que me inserta noticias, y que a su vez permite cargar hasta 5 imagenes, para luego moverlas a una carpeta del servidor y almacenar su ruta en la bd...Me funcionaba bien hasta que medi cuenta de algunos detalles, me puse a hacer validacion del tipo de archivo, renombrar para no sobreescribir imagenes, etc, y me doycuenta que independiente de que cargue o no imagenes me inserta el nombre de la carpeta destino en los campos de imagenes (cosa que no deberia porque no estoy cargando imagenes), probe con este codigo:
Código PHP:
if(isset($_POST['enviar'])){
            
        
//Validamos que no sean ams de 5 imagenes las que se cargaron
        
if(!sizeof($_FILES['fotosavisos']['name']) > 5){ 
    
        echo 
'ha cargado mas de 5 fotos';
        
    }else{
//llamo la objeto insertar

y consigo hacer bien el insert, solo datos, sin anda en las rutas de imagenes, ya que no cargue archivo...

Lo que necesito ahcer es:
1- insertar solo datos si no se cargaron imagenes (dejando los campos de imagenes como null)
2.- si se cargaron imagenes, insertar todo (imagenes y noticias)

Intento con este codigo final:
Código PHP:
if(isset($_POST['enviar'])){
            
        
//Validamos que no sean ams de 5 imagenes las que se cargaron
        
if(!sizeof($_FILES['fotosavisos']['name']) > 5){ 
    
        echo 
'ha cargado mas de 5 fotos';
        
    }else{
       
        
//Aca es donde deberia colocar el codigo que se encarga de sbuir las imagenes?

            
if(!empty($_FILES['fotosavisos']['name'])){
            
$rutas = array(''''); // Inicializas con dos rutas vacías
             //Subida de Archivos
            
foreach($_FILES['fotosavisos']['tmp_name'] as $key => $nombresTemporal)
            {   
                
//asignamos un nombre unico para que no se repita si el nombre de la  imagen ya existe en el servidor
                //$nombreUnico=  md5( time());
                
                               
                //Nombre del Arreglo generado con el input fotosavisos
                
$nombres=$_FILES['fotosavisos']['name'][$key];
                
                
//Obtenemos la extension del archivo
                //$nombreUnico=substr(md5($nombres),0 , 10);
                
                //$nombres= preg_replace('#[^a-z.0-9]#i', '', $nombres);
                
                //Nombre Temporal de la Imagen (Generada por el servidor)
                
$nombresTemporal=$_FILES['fotosavisos']['tmp_name'][$key];
                        
//Tamaño de la Imagen
                
$tamaño=$_FILES['fotosavisos']['size'][$key];
                        
//Tipo de Imagen
                
$tipo=$_FILES['fotosavisos']['type'][$key];
               
                
//Ruta en Servidor
               
$rutaFinal="../imagenes_avisos/".$nombres;
               
$rutaFinalSQL="imagenes_avisos/".$nombres//VALIDAR QUE ESTA RUTA EXISTA

            //Movemos los Archivos al Servidor
            
move_uploaded_file($nombresTemporal,$rutaFinal);
              
            
// Actualizas la ruta correspondiente para este archivo
            
$rutas[$key] = $rutaFinalSQL;

        }
//foreach 
        
            
}
        }
        
             
    

    
//Insertamos los Datos (Aun si no se han cargado imagenes )
    
try{
       
        
$obj->insertarAvisos($rutas);

        
//print_r($_POST);
        // print_r($_FILES);

    
}catch(PDOException $e){

        echo 
$e;

    }

    
    
//if post 
pero hace el insert, y no mueve la imagen, ademas de que con este codigo, si no cargo imagen, igual inserta el nombre de la carpeta destino en los campos ruta...

Saludos a todos, agradesco su tiempo

Etiquetas: basico, sql, upload
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 07:57.