Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/08/2014, 16:38
nimaki25
 
Fecha de Ingreso: noviembre-2010
Mensajes: 131
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Reducir nombre y quitar caracteres raros

gracias amigo por tu tiempo, modifique el codigo y actualmente lo tengo asi:
Código PHP:
/Imprimir el array que viene via POST (Solo para efectos de Debugprint_r($_POST);

require_once 
'../Inc/funciones.php';

$obj = new Avisos();

/*$obj->insertarAvisos();*/

if(isset($_POST['enviar'])){
  
    if(isset(
$_FILES['fotosavisos'])){
     
$rutas = array(''''); // Inicializas con dos rutas vacías
             //Subida de Archivos
            
foreach($_FILES['fotosavisos']['tmp_name'] as $key => $nombresTemporal)
            {   
                          
                
//Nombre del Arreglo generado con el input fotosavisos
                
$nombres=$_FILES['fotosavisos']['name'][$key];
                
                
//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];
                
                
$nombresuniqid(date()).$nombres;
               
                
$nombres=preg_replace('#[^a-z.0-9,\s+]#i'''$nombres);
                
                
//$nombres=  substr(($nombres),0,25);
                
                //Extension
                
$mak=  explode("."$nombres);
                
                
$extensionimg=end($mak);

                
//$nombreUnico=substr(md5($nombres),0 , 10);
               
                
                
                
if (!preg_match("/.(jpg|jpeg|gif|png)$/i"$nombres) ) {
                
// This condition is only if you wish to allow uploading of specific file types    
                
echo "ERROR: Solo Imagenes con formato: .gif, .jpg, or .png.";
                
unlink($nombresTemporal); // Remove the uploaded file from the PHP temp folder
                
exit();
                  } 
                
                
               
                
//$nombreunico    =   substr($nombreunico,0,10 );
               
                //$nombreunico    =   preg_replace('#[^a-z.0-9]#i', '', $nombres);
               
                
               
                //Ruta en Servidor
               
$rutaFinal="../imagenes_avisos/".$nombres//.$nombreunico.$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  
        
                    
            
//Llamamos a la funcion Insertar $obj->insertarAvisos();
        
    
try{
        
        
$obj->insertarAvisos($rutas);
            
//print_r($_POST);
    
}catch(PDOException $e){
        echo 
$e;
    }
        
    }


}




?> 



funciona bien, de hecho sube la imagen, añade el unique id, pero tengo algunos problemas...

me da este warning:
Warning: date() expects at least 1 parameter, 0 given in C:\xampp\htdocs\avisos\crud\insert.php on line 37

la linea es esta:
$nombres= uniqid(date()).$nombres;

y el archivo me lo sube bien, pero me deja el nombre por ejemplo asi:

ORIGINAL:
WP_20140626_18_50_55_SmartShoot.JPG

Y AL SUBIRLO ME LO SUBE ASI:
53ec22718a6d4WP20140626185055SmartShoot.JPG

loq ue busco es dejarlo asi por ejemplo
53ec22718a6d4WP201406261.jpg

estaria eliminando bien los espacios, pero al acortar el numero de caracteres con:
$nombres= substr(($nombres),0,25); //probando a 25 caracteres

me salta el filtro de que solo imagenes jpg, gif, etc, siendo que subo una jpg (la del ejemplo de arriba) y no
puedo subir ninguna imagen, solo eliminando esta linea vuelve a funcionar

en eso estoy pegado, ya tengo el filtro por extension funcionando, me falta:
- lo del warning date
- acortar a xx caracteres el nombre final

Saludos cordiales y agradeszco a todos su tiempo....