.
Que tal! Pues agradecería su ayuda, seguro es algo simple pero no he encontrado la solucion.
Tengo una web para subir archivos menores a 5MB, pero tengo un problema con los puntos intermedios.
Uso ésto para reemplazar caractéres no válidos en los nombres originales:
Código PHP:
$str = explode ('.', $_FILES['archivo']['name']);
$sea=array(' ','ñ','Ñ','Á','á','É','é','Í','í','Ó','ó','Ú','ú');
$rep=array('-','n','N','A','a','E','e','I','i','O','o','U','u');
$str=str_replace($sea,$rep,$str);
$nuevonombre = $str;
.
Para despues extraer la extensión del archivo y mostrar que formato es:
Código PHP:
$tipo=$_FILES['archivo']['type'];
switch ($tipo) {
case 'text/plain':
$ext='txt';
break;
case 'application/zip':
$ext='zip';
break;
case 'application/x-rar-compressed':
$ext='rar';
break;
case 'application/octet-stream':
$extension_type= explode ('.', $_FILES['archivo']['name']);
$ext= end($extension_type);
break;
default:
$ext= 'error';
break;
}
$solonombre=$nuevonombre[0];
Y el resultado: Código PHP:
echo 'Nombre de archivo: '.$solonombre.'<br/>
Extensión: '.$ext;
.
Pero el problema es cuando archivos vienen con puntos intermedios como por ejemplo un:
archivo.nuevo.txt
El resultado al subir el archivo es:
archivo.txt
De que manera puedo mantener ese punto intermedio para que el resultado me dé la extensión
txt pero con el nombre de achivo:
archivo.nuevo?
Ya intenté condicionar el punto con el
$sea como muestro arriba en el
explode del nombre original pero sigue sin funcionar.
Gracias por su ayuda!
.