Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/03/2014, 19:51
jhonny6721
 
Fecha de Ingreso: diciembre-2013
Mensajes: 150
Antigüedad: 10 años, 7 meses
Puntos: 8
Error con File Upload en CGI hecho en C++

Hola, ¿Como están?. Tengo que realizar una subida de archivos usando un input tipo file en HTML. Esos datos del formulario viajan a un CGI hecho en C++. Pero resulta que al ir recibiendo el archivo, descubro que viene mezclado con algo parecido a una cabecera HTTP. ¿Será que alguien sabe como hacer para recibir solo el archivo e ignorar las cabeceras HTTP??

Para demostrar que si estoy trabajando en mi problema, les muestro el codigo fuente. Gracias de antemano.

Código C++:
Ver original
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <iostream>
  5. #include <fstream>
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.  
  12.     ///Esto me funciona. Por lo menos puedo contar cuantos bytes mide el archivo aproximadamente.
  13.     int content_length = atol(getenv("CONTENT_LENGTH"));
  14.     char *content = new char[content_length];
  15.  
  16.     ///Abro un stream para escribir el archivo a subir.
  17.     ofstream archivo;
  18.     archivo.open("D:\\Archivos de Programa\\Apache Software Foundation\\Apache2.2\\uploads\\archivo_subido.txt");
  19.  
  20.     cout << "Content-type:text/html\r\n\r\n";
  21.     cout << "<html><head><title>Page</title></head>";
  22.     cout << "<body><h1>Content lenght: ";
  23.     cout << content_length << "</h1>";
  24.  
  25.     ///He oido que los archivos enviados por HTML se recibe por la entrada estandar
  26.     ///Asi que lo recibo lo copio a un buffer
  27.     cin.read(content, content_length);
  28.  
  29.     cout << "<h1>Content</h1>";
  30.     cout << "<b>" << content << "</b>";
  31.  
  32.     ///El contenido del archivo lo grab� en disco.
  33.     archivo << content;
  34.  
  35.     /*cout << content;*/
  36.  
  37.     cout << "<br><br>" << content;
  38.     cout << "</h1>";
  39.     cout << "</body></html>";
  40.  
  41.     archivo.close();
  42.  
  43.     delete [] content;
  44.  
  45.     return 0;
  46. }



Espero que al menos me den una orientacion. Gracias de antemano.
__________________
¿Necesitas ayuda con algún algoritmo? Si tienes dudas, entonces visita: http://algoritmosypseudocodigo.blogspot.com/.

Última edición por jhonny6721; 10/03/2014 a las 19:53 Razón: Me falto un pequeño dato.