09. maj 2001 - 11:39
Der er
1 løsning
\"Streaming\" af pdf
Jeg vil lave et lille CGI-program, der kan \"streame\" pdf-filer.
Humlen i programmet er nedenstående:
char* buffer = (char*) malloc(5*sizeof(char));
int numread;
printf(\"Content-Type: application/pdf\\n\\n\");
while (!feof(infile)) {
numread = fread(buffer, sizeof(char), 5, infile);
fwrite(buffer, sizeof(char), numread, stdout);
}
Acrobat reader starter godt nok, men vinduet forbliver blankt. Sjovt nok virker med en tekstfil... Pdf-filen er ok.
Lidt roden rundt og prøven frem og tilbage og jeg fandt løsningen - hvis nogen skulle være interreseret:
long contentLength = _filelength(infile);
char* buffer = (char*) malloc(256*sizeof(char));
int numread;
_setmode(1, _O_BINARY);
char* ct = new char[400];
sprintf(ct, \"Content-type: %s\\nContent-length: %1d\\r\\n\\r\\n\", type, contentLength);
_write(1, ct, strlen(ct)); // write cgi header
while (!_eof(infile)) {
numread = _read(infile, buffer, 256);
_write(1, buffer, numread); // write to stdout
}
_commit(1);
_close(infile);
Ovenstående virker med alle typer af binære filer (gif, jpg, pdf, avi, etc.) Eneste krav er, at der eksisterer et plug-in til filtypen.