Comunidad de diseño web y desarrollo en internet online

Download files, el problema es el caracter " "

Citar            
MensajeEscrito el 07 Nov 2009 12:59 pm
Hola, como siempre gracias por las ayudas de siempre.

Tengo este problema:
La aplicación que me solicitaron, tiene que darle la posibilidad al usuario de descargar archivos que están en el servidor, a su PC.

Para ello tengo este código, en Flex 3.0:

Código Flex :

public class  Downloader
   {
      private var fileToDownload:URLRequest;//El archivo a descargar
      private var fileReference:FileReference;//Este objeto se encarga de la descarga
      
      public function Downloader(input:String):void //Donde "input" es el archivo a descargar
      {
         fileToDownload = new URLRequest();
         fileToDownload.url = input;
         fileReference = new FileReference();
         configureHandlers(fileReference);
         fileReference.download(fileToDownload);
      }
      
      //Configuramos los Listeners que se encargaran de determinado suceso
      private function configureHandlers(dispatcher:IEventDispatcher):void
      {
         dispatcher.addEventListener(Event.COMPLETE, completeHandler);
         dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
         dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
      }
}


El tema es que si el nombre del archivo contiene caracteres " " (en blanco), se produce un error en tiempo de ejecución:
Error: Error #2087: El nombre de archivo FileReference.download() contiene caracteres no permitidos.
at flash.net::FileReference/download()
at Clases::Downloader()[C:\wamp\www\CCSur\src\Clases\Downloader.as:27]
at Archivos/descargar()[C:\wamp\www\CCSur\src\codeArchivos.as:98]
at Archivos/__btnDloader_click()[C:\wamp\www\CCSur\src\Archivos.mxml:13]

btnDloader, es el boton que llama a la función descargar(), que es la que importa la clase "Downloader" y crea la instancia.


Digamos que, desde hace tiempo ya, los nombres de los archivos son de más de 8 caracteres y ya no hay tantas limitaciones. Por lo tanto no le puedo pedir al administrador del sitio web, que solamente suba al servidor archivos cuyos nombres no contengan caracteres en blanco.

Si el tema ya fue posteado (no lo encontré), les pido me pasen el link para estudiarlo. De lo contrario si alguien tiene alguna solución les agradezco si me pueden dar una mano.

Como siempre muchas gracias por la ayuda.

Por calmas

9 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Nov 2009 02:36 pm
El servidor reemplaza los carácteres en balnco por otra cosa (eso depende del servidor), por ejemplo %20 ... mira en el servidor que pone en lugar del espacio y reemplaza automáticamente por eso cuando haces el pedido (y detectas que el nombre tiene un espacio)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 Nov 2009 06:33 pm
Gracias por la respuesta.

Aún estoy trabajando en local.
Como no me estoy dando cuenta, donde ver cual es la cadena de caracteres que cambia por un espacio, probé con tu ejemplo %20 y me largó el mismo error.
Evidentemente no lo cambia por el ejemplo, pues vi que a la variable se le asignó, correctamente, el valor "nombre%20nombre.pdf".

Entonces necesitaría saber donde veo, o como hago para ver, cual es el remplazo que hace cuando recibe un espacio.
Y de paso, como hago para ver en un servidor externo, pues ya estoy a punto de subir los archivos.

Gracias nuevamente.

Por calmas

9 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Nov 2009 10:34 am
Prébalo en el servidor externo, a menos que tengas en local el mismo OS que tu servidor. Sube un archivo con espacios, mira que nombre le ha puesto, usa esa sustitución

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.