0

Estoy tratando de subir archivos a mi servidor con codeigniter 3, el programa sube bien los archivos sin acento como tilde o caracteres latinos como Ñ, pero al momento de subir un archivo con acento como tilde o Ñ lo renombre y me forma problema al descargar, ya que al guardar me lo nombra asi Capítulo_11 el nombre seria Capítulo_11, y al tratar de descargar no encuentra el archivo y me lo envía con error de lectura, me dice en caso de pdf no se puede abrir, en caso de un documento office no se puede leer ni abrir el archivo por que se encuentra dañado.

Los datos los envio por ajax y e comprobado que los envia de forma correcta con acentos y todo.

Aquí mi código de subir un archivo al servidor:

public function document()
{
    $config['allowed_types']    = 'docx|xlsx|pdf';
    $config['upload_path']      = './assets/archivos/doc/';
    $config['remove_spaces']    = TRUE;
    $config['max_size']         = '20048';
    $this->load->library('upload', $config);
    if(!$this->upload->do_upload('file')){
         $error = $this->upload->display_errors();
         $result = array('error' => true, 'mens' => $error, 'estado' => 3);
         echo json_encode($result);
    }else{
         $data = array(
                 'nom_doc'  => $this->upload->data('file_name'), 
                 'doc_size' => $this->upload->data('file_size'),
                 'type_doc' => $this->upload->data('file_type'),
                 'ruta_doc' => $this->upload->data('full_path'),
                 'id_conf_sist' => 1
                 );
         $res = $this->Config_model->insertDocument($data);
        if($res){
              $result = array('error' => false, 'mens' => 'El archivo '.$this->upload->data('raw_name').', a sido guardado correctamente.', 'estado' => 1);
             echo json_encode($result);
         }
      }
 }

Alguien me podría ayudar a dar solución a este inconveniente.

Jhonny Luis
  • 590
  • 9
  • 23
  • Revisa esta respuesta de [SO](https://stackoverflow.com/questions/18204364/php-upload-utf-8-filename) – J. Castro Apr 30 '18 at 23:20
  • Hola, para no tener problemas con los nombres de archivos los puedes estandarizar usando `utf8_decode()`, esta función convierte cadenas como _Capítulo_11_ en _Capítulo_11_, para mas información revisa esta pregunta [¿Cuándo usar utf8_encode o utf8_decode?](https://es.stackoverflow.com/questions/29662/cu%C3%A1ndo-usar-utf8-encode-o-utf8-decode), saludos. – the-breaker May 02 '18 at 03:21

0 Answers0