Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > HTML, Javascript y otros
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-05-2006
Migue Rguez Migue Rguez is offline
Miembro
 
Registrado: may 2003
Ubicación: Sanlúcar de Bda. (Cádiz)
Posts: 10
Poder: 0
Migue Rguez Va por buen camino
Gracias seoane!

Sencillamente magistral tu respuesta, es para apuntarla y no olvidarla. Ahora bien, no solucionó mi problema pero consiguió abrirme la mente y obtuve la forma de darle salida a este caso.

Os lo explico para compartirlo con todos vosotros. Prefiero dejar la idea antes que el código ya que cada caso puede ser particular.

La idea principal es hacer un POST conteniendo la respuesta que envía nuestro navegador del formulario HTML. Es decir, qué cosa recibe el servidor para que termine recibiendo perfectamente lo que le enviamos. Para esto puedes usar un programa gratuito de http://www.softx.org/internet-logger.html que logea todo el tráfico web cliente-servidor-servidor-cliente.

Analizamos el log resultante y extraemos toda la respuesta que devuelve el navegador.

Con esta respuesta la dividimos en dos partes: la primera que va desde el principio del log extraido hasta la primera posicion donde comienza el envio del contenido del archivo a enviar por el formulario web. Y la segunda parte que va desde la ultima posicion del archivo a enviar hasta el final. Con lo que el resultante de esta operación son dos archivos txt (si asi queremos guardarlo) sin el contenido del archivo a enviar.

Ahora sólo queda sustituir en ambas partes la información que nos interese tales como el nombre de archivo, el tamaño, la ubicación, y otros datos que se incluyen en el formulario web.

A continuación se carga en un TStreamMemory (SM1) la primera parte, en otro TStreamMemory (SM2) el contenido del archivo (SM2.LoadFromFile(archivo) y en el ultimo (SM3) la última parte del log.

Se concatenan los tres TStreamMemory.

Se prepara la cabecera del TidHTTP en base al log que registramos (idhttp1.Request.Connection, IdHTTP1.Request.ContentType, etc...) y finalmente se envían con TidHTTP.Post()

El resultado es satisfactorio al menos en mi caso. Es un procedimiento un poco enrevesado pero al menos puede ayudarnos a sacarnos del atasco cuando no sabemos que script posee el servidor ni sabemos de que manera procesa la información que le enviamos.

Saludos y espero que esto saque a más de uno de un aprieto.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Encontrar un registro determinado. alfredosg19 Conexión con bases de datos 3 20-06-2005 21:09:49
que programa esta ejecutando un determinado archivo slat API de Windows 1 11-04-2005 17:11:23
Saber que executable usa un puerto determinado... StartKill API de Windows 2 06-08-2004 11:34:54
Subir Archivo Plano agora18 Conexión con bases de datos 3 16-09-2003 16:25:30
Abrir un fichero determinado en Word Tonio Varios 2 26-08-2003 17:35:46


La franja horaria es GMT +2. Ahora son las 01:29:50.


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