Foros del Web » Programando para Internet » PHP »

Error al descargar archivos con espacios

Estas en el tema de Error al descargar archivos con espacios en el foro de PHP en Foros del Web. Estoy probando un nuevo sitio web y obtengo errores al descargar archivos con espacios: http://wikibouza.co.cc/index.php?name=1bach&arq=1bach/castelan Sin embargo, en otro proyecto parecido usaba archivos con espacios ...
  #1 (permalink)  
Antiguo 14/09/2011, 15:20
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Error al descargar archivos con espacios

Estoy probando un nuevo sitio web y obtengo errores al descargar archivos con espacios:

http://wikibouza.co.cc/index.php?name=1bach&arq=1bach/castelan




Sin embargo, en otro proyecto parecido usaba archivos con espacios que se descargan sin problemas:

http://wikibouza.co.cc/1bach/documentos/castelan/castelan.php



¿Alguna idea?

Muchas gracias
  #2 (permalink)  
Antiguo 14/09/2011, 15:23
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Error al descargar archivos con espacios

Puede ser un problema de codificación de la url, pero habría que ver tu código para saber con más certeza.
  #3 (permalink)  
Antiguo 14/09/2011, 15:24
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error al descargar archivos con espacios

Son documentos de word, y no entiendo por qué en el primer caso el enlace de descarga da error y en el segundo no :S
  #4 (permalink)  
Antiguo 14/09/2011, 15:26
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Error al descargar archivos con espacios

Explicate un poco mejor...Que error recibes? 404?
  #5 (permalink)  
Antiguo 14/09/2011, 15:30
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error al descargar archivos con espacios

Código PHP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//ES">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5.     <title>nanube | P&aacutexina</title>
  6.     <link type="text/css" href="menu.css" rel="stylesheet" />
  7.  
  8.  
  9.  
  10. <style type="text/css">
  11. <!--
  12. body {
  13.    background-image: url(/images/background.png);
  14.    background-repeat: repeat-x;
  15.    background-position: left top;
  16. }
  17. -->
  18. </style>
  19.  
  20.  
  21.  
  22.  
  23. </head>
  #6 (permalink)  
Antiguo 14/09/2011, 15:30
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error al descargar archivos con espacios

Exacto recibo un error 404
  #7 (permalink)  
Antiguo 14/09/2011, 15:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Error al descargar archivos con espacios

Cita:
Iniciado por rodrigoemece Ver Mensaje
Código PHP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//ES">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5.     <title>nanube | P&aacutexina</title>
  6.     <link type="text/css" href="menu.css" rel="stylesheet" />
  7.  
  8.  
  9.  
  10. <style type="text/css">
  11. <!--
  12. body {
  13.    background-image: url(/images/background.png);
  14.    background-repeat: repeat-x;
  15.    background-position: left top;
  16. }
  17. -->
  18. </style>
  19.  
  20.  
  21.  
  22.  
  23. </head>
Te faltó el código
  #8 (permalink)  
Antiguo 14/09/2011, 15:38
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error al descargar archivos con espacios

Código PHP:
Ver original
  1. </td>
  2.       <td bgcolor="#768491" width="1">&nbsp;</td>
  3.       <td style="padding-left: 1em; vertical-align: top; background-color: rgb(255, 255, 255); width: 80%;">
  4.      Apuntes na categor&iacute;a: <strong> <?php $arq = ($_GET["arq"]); echo "$arq/" ?></strong>
  5.       <br><br><div id="archivos">
  6.       <?php if ($gestor = opendir($_GET["arq"])) {
  7.         echo "<ul>";
  8.         while (false !== ($arch = readdir($gestor))) {
  9.            if ($arch != "." && $arch != "..") {
  10.              echo "<a href=" . $_GET["arq"] . "/". $arch. "\" class=\"linkli\">" . $arch . "</a>\n";
  11.            }
  12.         }
  13.         closedir($gestor);
  14.         echo "</ul>";
  15.     }
  16.     ?></div>
  17.       </td>
  18.      
  19.     </tr>
  20.   </tbody>
  21. </table>
  22. </body></html>
  #9 (permalink)  
Antiguo 14/09/2011, 15:39
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error al descargar archivos con espacios

Los links de los archivos los genera por php según los archivos del directorio que recoge con $_GET
  #10 (permalink)  
Antiguo 14/09/2011, 15:40
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error al descargar archivos con espacios

El código en el que funciona es:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     if ($gestor = opendir('castelan')) {
  4.  
  5.         echo "<ul>";
  6.  
  7.         while (false !== ($arch = readdir($gestor))) {
  8.  
  9.            if ($arch != "." && $arch != "..") {
  10.  
  11.                echo "<li><a href=\"castelan/".$arch."\" class=\"linkli\">".$arch."</a></li>\n";
  12.  
  13.            }
  14.  
  15.         }
  16.  
  17.         closedir($gestor);
  18.  
  19.         echo "</ul>";
  20.  
  21.     }
  22.  
  23.     ?>
  #11 (permalink)  
Antiguo 14/09/2011, 15:46
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Error al descargar archivos con espacios

Probá cambiar esto:

Código PHP:
Ver original
  1. echo "<li><a href=\"castelan/".$arch."\" class=\"linkli\">".$arch."</a></li>\n";

por esto:

Código PHP:
Ver original
  1. echo "<li><a href=\"castelan/".str_replace(' ', '%20', $arch)."\" class=\"linkli\">".$arch."</a></li>\n";

Revisá además que el puedas descargar el archivo si le quitás los espacios.
  #12 (permalink)  
Antiguo 15/09/2011, 03:08
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error al descargar archivos con espacios

Así funciona perfectamente:
Código PHP:
Ver original
  1. echo "<li><a href=\"castelan/".str_replace(' ', '%20', $arch)."\" class=\"linkli\">".$arch."</a></li>\n";


Pero cuando aplico tu corrección a la línea con $_GET:
Código PHP:
Ver original
  1. echo "<a href=". $_GET["name"] ."/".str_replace(' ', '%20', $arch)."\" class=\"linkli\">".$arch."</a>\n";


El link que devuelve sigue el patrón: (Aparece una doble comilla al final, después de la extensión).

http://web.es/categoria/Archivo para descargar.doc"


Gracias.
  #13 (permalink)  
Antiguo 15/09/2011, 03:29
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error al descargar archivos con espacios

Creo que se trata de algo en relación con este símbolo "\" ya que tiene que ver con el escape de las comillas.

En el primer caso aparece esta barra antes del enlace

echo "<li><a href=\"


Sin embargo, si la dejo en el segundo caso me da un error :S


Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/vol9/xtreemhost.com/xth_9023749/nanube.eu/htdocs/index.php on line 217
  #14 (permalink)  
Antiguo 15/09/2011, 04:45
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Error al descargar archivos con espacios

Ya econtré la solución :D


Tenía esta línea:
Código PHP:
Ver original
  1. echo "<a href=". $_GET["arq"] ."/".str_replace(' ', '%20', $arch). "\" class=\"linkli\">".$arch."</a>\n";

Y cambié por esto:
Código PHP:
Ver original
  1. echo "<a href=\"". $_GET["arq"] ."/".str_replace(' ', '%20', $arch). "\" class=\"linkli\">".$arch."</a>\n";


Este era el problema: <a href=\""

Gracias WalterDevel por contestar :D

Etiquetas: espacios
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 11:48.