Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 03-03-2019
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Hola a todos.

Como es mi costumbre cuando resuelvo algo, os dejo la solución que a mí me ha funcionado.

Mi operador telefónico en casa y en el móvil es Orange. (No sé si el problema sucede con otros operadores)

Como os comentaba, cuando uso el móvil con el Wi-Fi de casa no hay ningún problema, los ficheros se suben por FTP a mi Web sin problemas.

El problema surgió al intentar hacer lo mismo desconectando el móvil de la Wi-Fi. Y utilizar los datos móviles del dispositivo,

He llegado a la conclusión de que el servidor que usa el operador es el que da el problema. Pues con ficheros realmente pequeños no da problemas. Cuando digo pequeños es de 1000 bytes o poco más.

Yo estaba intentando subir un fichero de 17600 bytes (Que a mí me parece pequeño...)

Al final he optado por el lema de Julio César: "Divide y vencerás" y así ha sido.

Dejo un fragmento de código por si sirve a alguien.

Código Delphi [-]
........................................
type
  TForm1 = class(TForm)
    .....
    Memo1: TMemo;
    ......

........................................
var

filename, FileTemp, FileUsed : String;
idFTP1 : TidFTP;
FS, FS2, FSInter: TMemoryStream;

................................................

        FS.Clear;
         Memo1.Lines.SaveToStream(FS); //Para grabar nuevamente en internet
      
         Sleep(300);
         FS.Position := 0;
         // Tenemos que subir el fichero poco a poco porque cuando
         // usamos los datos móviles en el dispositivo no sube el fichero
         // de una vez. PARECE QUE CON WIFI SI QUE LO SUBE
         I := FS.Size - FS.Position;
         if I > 1000 then I := 1000;

         FSInter.Clear;
         FSInter.CopyFrom(FS,I); // Si I > FS.Size - FS.Position lee
         FSInter.Position := 0;  // fuera de FS.Size y daria error
         IdFTP1.Put(FSInter, FileName, False, 0);

         while FS.Position < FS.Size
         do begin
            I := FS.Size - FS.Position;
            if I > 1000 then I := 1000;

            FSInter.Clear;
            FSInter.CopyFrom(FS,I); // Si I > FS.Size - FS.Position lee
            FSInter.Position := 0;  // fuera de FS.Size y daria error
            IdFTP1.Put(FSInter, FileName, True, 0);
            end;

Saludos cordiales.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cliente / Servidor carlosro_ec C++ Builder 2 11-12-2005 17:06:14
cliente/servidor alfil123 Conexión con bases de datos 1 01-12-2005 16:40:42
Conexión Cliente-Cliente Clantt Providers 1 28-09-2004 17:46:34
Cliente V.S. Cliente AGAG4 Conexión con bases de datos 2 09-09-2004 19:28:39
y mi cliente???? jzginez Firebird e Interbase 7 24-02-2004 18:12:24


La franja horaria es GMT +2. Ahora son las 05:37:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi