Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Imposible descargar archivos de mas de 100Mb. con Indy 11

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Imposible descargar archivos de mas de 100Mb. con Indy 11 Responder citando

Cuando intento descargarme un archivo de mas de 100Mb. con Get(), me salta una excepción
Estoy usando XE, primera versión
Parece que Indy asigna internamente el contenido de Get() a un TMemoryString y cuando el archivo supera los 100Mb. salta una excepción
Alguien podria decirme si en el nuevo XE3 con su nuevo Indy se ha solventado este problema ?
O me toca explorar otras opciones para reemplazar a Indy

Saludos
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

He hecho esta pequeña prueba con un archivo de 266MB:
Código:
//! Añadimos la cabecera: #include<memory>
std::unique_ptr<TFileStream> fs(new TFileStream("d:\\PC51.wmv", fmCreate));
IdHTTP1->Get("http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/PC51.wmv", fs.get());
ShowMessage("finalizado");

El video de la prueba es: Windows 7: Best Practices for Developing for Windows Standard User
http://channel9.msdn.com/Blogs/pdc2008/PC51


Con las siguientes versiones:

BCB6 + Indy 9.0.14
CB2010 + Indy 10.5.5 (la que trae de fábrica)
CBXE3 + Indy 10.5.9 (la que trae de fábrica)

En todas se ha descargado correctamente. Luego he probado a descargar algo un poco más grande, 785MB:

http://gb.releases.ubuntu.com/raring/ubuntu-13.04-desktop-amd64.iso

También se descargó perfectamente.

Habría que ver si te ocurre con alguna web específica, o si te ocurre con todas el código que estas usando para reproducir el problema.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Leo por tu respuesta

Disculpa, pero con mi pregunta se me ha ido la pinza y no es la función Get la que uso, si no Post
Te pongo un trozo de código para muestra

Saludos

//_______________
/*
SERVER_ADDRESS: URL String
*/

TMemoryStream * Receive = new TMemoryStream();
TIdMultiPartFormDataStream *params = new TIdMultiPartFormDataStream;
...
params->AddObject(L"data", params->RequestContentType, L"", data, L"file");
IdHTTP->Post(SERVER_ADDRESS, params, Receive); // Exception when large file size (> 100 MB)

//_________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.