Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/07/2014, 06:02
evoarte
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 3 meses
Puntos: 2
Respuesta: setRequestHeader en jquery

buenos días,

mi problema radica en subir archivos y luego poder borrarlos cuando el nombre incluye algún carácter latino (ñ, á, é ...)

para subir, utilizando utf8_decode, ahora los archivos si los veo con filezilla tienen caracteres latinos:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $output_dir = "uploads/";
  4. if(isset($_FILES["myfile"]))
  5. {
  6.     $ret = array();
  7.  
  8.     $error =$_FILES["myfile"]["error"];
  9.     //You need to handle  both cases
  10.     //If Any browser does not support serializing of multiple files using FormData()
  11.     if(!is_array($_FILES["myfile"]["name"])) //single file
  12.     {
  13.         $fileName = utf8_decode ( $_FILES["myfile"]["name"] );
  14.         move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$fileName);
  15.         $ret[]= $fileName;
  16.     }
  17.     else  //Multiple files, file[]
  18.     {
  19.       $fileCount = count($_FILES["myfile"]["name"]);
  20.       for($i=0; $i < $fileCount; $i++)
  21.       {
  22.         $fileName = utf8_decode ( $_FILES["myfile"]["name"][$i] );
  23.         move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$output_dir.$fileName);
  24.         $ret[]= $fileName;
  25.       }
  26.    
  27.     }
  28.     echo json_encode($ret);
  29.  }
  30.  ?>


para borrar, el archivo no es borrado, sin embargo tengo la respuesta, y la variable $fileName está vacia, la respuesta es: Deleted File <br>:

el error debe producirse en la función unLink, pero solo falla cuando el nombre del archivo tiene caracteres latinos, pero ¿por qué?


Código PHP:
Ver original
  1. <?php
  2.  
  3. $output_dir = "uploads/";
  4. $fileName =utf8_decode ( $_POST['name'] );
  5.  
  6. if(isset($_POST["op"]) && $_POST["op"] == "delete" && isset($fileName))
  7. {
  8.     $fileName =utf8_decode ( $_POST['name'] );
  9.     $filePath = $output_dir. $fileName;
  10.     if (file_exists($filePath))
  11.     {
  12.         unlink($filePath);
  13.         echo "Deleted File ".$fileName."<br>";
  14.     }
  15. }
  16.  
  17. ?>

espero vuestra ayuda, que estoy pez con php,
un saludo.