Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/09/2010, 09:14
Avatar de fakulicious
fakulicious
 
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 16 años
Puntos: 2
Respuesta: Reemplazar caracteres especiales en nombre de archivo

La verdad es que no entiendo eso de la codificación, pero esta función no la quiero para mostrar texto en pantalla, sino para cambiar el nombre de un archivo al subirlo al servidor.

Cómo debería darle la codificación para que funcione bien? Te copio el código que tengo actualmente. Uso Dreamweaver CS5.

Código PHP:
<?php
function formatearNombre($cadena){
   
$tofind "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ· ";
   
$replac "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn-_";
   return(
strtr($cadena,$tofind,$replac));
}
require_once(
'../classes/documentos.class.php');

if(isset(
$_GET['action'])){
    switch(
$_GET['action']){
        case 
'nuevo':
            if (!empty(
$_FILES)) {
                
$titulo htmlspecialchars(trim($_POST['titulo']));
                
$descripcion htmlspecialchars(trim($_POST['descripcion']));
                
$keywords htmlspecialchars(trim($_POST['keywords']));
                
$idInstitucion htmlspecialchars(trim($_POST['idInstitucion']));
                
$idCarrera htmlspecialchars(trim($_POST['idCarrera']));
                
$idMateria htmlspecialchars(trim($_POST['idMateria']));
                
$idProfesor htmlspecialchars(trim($_POST['idProfesor']));
                
$tempFile $_FILES['Filedata']['tmp_name'];
                
$idUnico date('Ymd');
                
$idUnico .= $idInstitucion;
                
$idUnico .= $idCarrera;
                
$idUnico .= $idMateria;
                
$idUnico .= $idProfesor;
                
$idUnico .= '_';
                
$size $_FILES['Filedata']['size'];
                
$fileName $idUnico $_FILES['Filedata']['name'];
                
$fileName formatearNombre($fileName);
                
                
$targetPath $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
                
$targetFile =  str_replace('//','/',$targetPath) . $fileName;
                
                if(
move_uploaded_file($tempFile,$targetFile)){
                    
$objDocumento = new Documentos;
                    if (
$objDocumento->nuevoDocumento(array($idInstitucion$idCarrera$idMateria$idProfesor$titulo$descripcion$keywords$fileName$size)) == true){
                        echo 
'ok';
                    }else{
                        echo 
'error';
                    }
                } else {
                    echo 
'error';
                }
            }
            break;
            
        
//Aca van otros CASE
    
}
}
?>

No lo uso en un documento que se decodifique en HTML, sino un PHP que procesa las solicitudes y devuelve ok o error.
__________________
Facundo
http://www.creactivo.com.ar