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#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
///Esto me funciona. Por lo menos puedo contar cuantos bytes mide el archivo aproximadamente.
int content_length
= atol(getenv("CONTENT_LENGTH")); char *content = new char[content_length];
///Abro un stream para escribir el archivo a subir.
ofstream archivo;
archivo.open("D:\\Archivos de Programa\\Apache Software Foundation\\Apache2.2\\uploads\\archivo_subido.txt");
cout << "Content-type:text/html\r\n\r\n";
cout << "<html><head><title>Page</title></head>";
cout << "<body><h1>Content lenght: ";
cout << content_length << "</h1>";
///He oido que los archivos enviados por HTML se recibe por la entrada estandar
///Asi que lo recibo lo copio a un buffer
cin.read(content, content_length);
cout << "<h1>Content</h1>";
cout << "<b>" << content << "</b>";
///El contenido del archivo lo grab� en disco.
archivo << content;
/*cout << content;*/
cout << "<br><br>" << content;
cout << "</h1>";
cout << "</body></html>";
archivo.close();
delete [] content;
return 0;
}
Espero que al menos me den una orientacion. Gracias de antemano.