Foros del Web » Programando para Internet » PHP »

problemas al sacar los acentos cuando subo un archivo en linux

Estas en el tema de problemas al sacar los acentos cuando subo un archivo en linux en el foro de PHP en Foros del Web. Hola gente estoy intentando subir archivos y guardarlos en un servidor con linux, pero si el nombre del archivo tiene acentos, cuando quiero recuperarlo no ...
  #1 (permalink)  
Antiguo 25/11/2009, 13:46
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 8 meses
Puntos: 0
problemas al sacar los acentos cuando subo un archivo en linux

Hola gente estoy intentando subir archivos y guardarlos en un servidor con linux, pero si el nombre del archivo tiene acentos, cuando quiero recuperarlo no lo abre, por lo cual puse en el codigo php una funcion que me remplace los acentos, si lo pruebo de manera local con windows, funciona perfecto, pero en el servidor me remplaza el acento por un cuadrado "�". y no logro solucionarlo, alguna solucion?

copio el codigo:

Código PHP:
function guardarArchivo($file,$datos)
{        
    
$destino'/servidor con linux/';            
    
$conacento=$this->GetQuitarAcentos($conacento);
    if(
move_uploaded_file ($file['nombreArchivo']['tmp_name'],$destino '' .$conacento))
    {
        if (
$_FILES['nombreArchivo']['type']=="application/pdf" || $_FILES['nombreArchivo']['type']=="application/msword")
        {
                
            
$this->setNombre($conacento);
            
$this->setTituloID($datos['tituloID']);
            
$conversorArchivo= new ConversorArchivoBDR();
            
$conversorArchivo->ingresarArchivo($this);

            
print_r("El archivo ha sido cargado correctamente.");
        }
    }
                                 

esta es la función que me remplaza la letra que tiene el acento, por la misma letra sin el acento

Código PHP:
function GetQuitarAcentos($s)
{
    
$s ereg_replace("[áàâãª]","a",$s);
    
$s ereg_replace("[ÁÀÂÃ]","A",$s);
    
$s ereg_replace("[ÍÌÎ]","I",$s);
    
$s ereg_replace("[íìî]","i",$s);
    
$s ereg_replace("[éèê]","e",$s);
    
$s ereg_replace("[ÉÈÊ]","E",$s);
    
$s ereg_replace("[óòôõº]","o",$s);    
    
$s ereg_replace("[ÓÒÔÕ]","O",$s);
    
$s ereg_replace("[úùû]","u",$s);
    
$s ereg_replace("[ÚÙÛ]","U",$s);
    
$s str_replace("ç","c",$s);
    
$s str_replace("Ç","C",$s);
    return 
$s;

Muchas gracias desde ya.
Saludos
  #2 (permalink)  
Antiguo 25/11/2009, 13:58
 
Fecha de Ingreso: mayo-2007
Mensajes: 60
Antigüedad: 16 años, 11 meses
Puntos: 3
Respuesta: problemas al sacar los acentos cuando subo un archivo en linux

Una posible solucion seria tratar los acentos antes de enviarlos.
  #3 (permalink)  
Antiguo 25/11/2009, 14:05
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: problemas al sacar los acentos cuando subo un archivo en linux

Imprime en la cabezera.

Código php:
Ver original
  1. echo content="text/plain; charset=utf-8";
  #4 (permalink)  
Antiguo 26/11/2009, 06:49
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: problemas al sacar los acentos cuando subo un archivo en linux

Disculpen pero no entendi lo que me aconsejan, este es mi archivo que contiene el html

Código HTML:
<fieldset>
 <form id="formSubirArchivo" name="formsubirArchivo" action="../controladores/ControladorArchivo.php" method="post" enctype="multipart/form-data">
<fieldset>
   <div id="Layer2">
     <div id="Laye3">
     <label class="labelBusqueda">Titulo:</label> </div>
       <div id="Layer4">
   
		     
</div>
  
       <div id="Layer5">
     <label >Subir Archivo:</label></div>
	 
       
       <div id="Layer6"> 
	    <input type="file" name="nombreArchivo" id='busqueda' />
     </div>
	 

  
 
       <div id="Layer7">  
     <input type="submit"  value="Subir archivo" class="btnEnviar" /> </div>
     
 </div>  
</fieldset>


 </form> 
  #5 (permalink)  
Antiguo 26/11/2009, 06:56
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: problemas al sacar los acentos cuando subo un archivo en linux

Intenta esta forma


Código php:
Ver original
  1. function GetQuitarAcentos($s)
  2. {
  3.  
  4. $s = utf8_encode($s);
  5.  
  6.  
  7.     $s = ereg_replace("[áàâãª]","a",$s);
  8.     $s = ereg_replace("[ÁÀÂÃ]","A",$s);
  9.     $s = ereg_replace("[ÍÌÎ]","I",$s);
  10.     $s = ereg_replace("[íìî]","i",$s);
  11.     $s = ereg_replace("[éèê]","e",$s);
  12.     $s = ereg_replace("[ÉÈÊ]","E",$s);
  13.     $s = ereg_replace("[óòôõº]","o",$s);    
  14.     $s = ereg_replace("[ÓÒÔÕ]","O",$s);
  15.     $s = ereg_replace("[úùû]","u",$s);
  16.     $s = ereg_replace("[ÚÙÛ]","U",$s);
  17.     $s = str_replace("ç","c",$s);
  18.     $s = str_replace("Ç","C",$s);
  19.     return $s;
  20. }

Mas informacion de la funcion utf8_decode

Última edición por gjx2; 26/11/2009 a las 07:02
  #6 (permalink)  
Antiguo 26/11/2009, 09:12
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: problemas al sacar los acentos cuando subo un archivo en linux

Muchisimas gracias por responder...
gjx2, hice lo que me dijiste, y no funcionó, pero cambie encode por decode y ahi si logre lo que quería!!!
Gracias por la ayuda!!! me quedó así la linea: $s = utf8_decode($s);

Muchisimas Gracias!!!!!
Saludos
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 22:54.