OOPS! You need to write: "Content-Length: " + DocumentToContentType(FDocument) + "\r\n"
SZ ----- Original Message ----- From: "Fastream Technologies" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Wednesday, December 07, 2005 5:39 PM Subject: Re: [twsocket] Sending a file with HTTPSERVER as response >I think to achieve your goal, you may need something like: > > String contentLength = "Content-Length: " + > String(Body.Length()) + "\r\n"; > String Header(FVersion + " 500 Server Error\r\n" + > contentLength + > "Content-Type: text/html\r\n" + > "Connection: " + FRequestConnection + "\r\n" + > "Server: " + serverString + "\r\n\r\n" > ); > > PutStringInSendBuffer(Header); > SendStream(); > > Do not forget to assign the file stream to FDocStream prior to calling > SendStream(). For this code to work, you need to set hgSendStream to > Flags. > This is all needed because you have to construct the response header > manually. There should be an easier way for your simple need but I told > that > to you and it did not work, so this is a work around. I use technique for > caching (I assign TmemoryStream to FDocStream) in our web server. > > Best Regards, > > SZ > > ----- Original Message ----- > From: <[EMAIL PROTECTED]> > To: "ICS support mailing" <twsocket@elists.org> > Sent: Wednesday, December 07, 2005 5:33 PM > Subject: Re: [twsocket] Sending a file with HTTPSERVER as response > > >>I have tried the following: >> >> ClientCnx.FDocument:='c:\1.zip'; >> ClientCnx.SendDocument(HttpSendDoc); >> >> When I send the request from the browser, the file is displayed in the >> browser in asci format and the browser does not come up with a save >> dialog. >> >> I dont have a C++ compiler (dont know much about it either) but if you >> can >> just send me a extract then I am sure I can figure it out. >> >> Thank you for taking the time to assist. >> >> Regards >> >> Juri Keyter >> >>> Here is what I do. After I receive the file with OnPostedData, I >>> manually >>> call SendDocument within the same event. You need to check for socket >>> errors >>> and content-length (FRequestContentLength). >>> >>> If you need more examples, let me know if you can read C++. >>> >>> Best Regards, >>> >>> SZ >>> >>> ----- Original Message ----- >>> From: <[EMAIL PROTECTED]> >>> To: "ICS support mailing" <twsocket@elists.org> >>> Sent: Wednesday, December 07, 2005 11:16 AM >>> Subject: Re: [twsocket] Sending a file with HTTPSERVER as response >>> >>> >>>> Hi >>>> >>>> Thank you for the prompt response. Can you give me a small example on >>>> how >>>> to use hgSendDoc? I can see it is a flag but I have no idea how to >>>> implement it. With a small one line example I will manage to figure it >>>> out. >>>> >>>> Thank you >>>> >>>> >>>> >>>> >>>> Juri Keyter >>>> >>>>> Hello, >>>>> >>>>> You need to use the hgSendDoc which is the default mode for GET/HEAD. >>>>> Just >>>>> change the DefaultDoc to the file you want. If there is no match for >>>>> the >>>>> MIME type in Francois' DocumentToContentType function, then you need >>>>> to >>>>> build your own header and use sendstream instead. >>>>> >>>>> Best Regards, >>>>> >>>>> SZ >>>>> >>>>> ----- Original Message ----- >>>>> From: <[EMAIL PROTECTED]> >>>>> To: <twsocket@elists.org> >>>>> Sent: Tuesday, December 06, 2005 10:10 PM >>>>> Subject: [twsocket] Sending a file with HTTPSERVER as response >>>>> >>>>> >>>>>> Hi All >>>>>> >>>>>> I am playing with the ICS WebServ server demo and need some help. I >>>>>> want >>>>>> to use the user inputs received from form.htm and based on the user >>>>>> responses provide a file to the web client for download. When the >>>>>> user >>>>>> types "one" in the first name field as example, I want the server to >>>>>> send >>>>>> him a file (not a html page) and therefore expect the clients browser >>>>>> to >>>>>> bring up a save file dialog automatically. This is what I have in >>>>>> mind: >>>>>> >>>>>> {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * >>>>>> * >>>>>> * * >>>>>> *} >>>>>> { This will process posted data for >>>>>> } >>>>>> { Data is saved in FormHandler.txt >>>>>> } >>>>>> procedure TWebServForm.ProcessPostedData_FormHandler( >>>>>> ClientCnx : TMyHttpConnection); >>>>>> var >>>>>> Stream : TStream; >>>>>> FileName : String; >>>>>> FirstName : String; >>>>>> LastName : String; >>>>>> HostName : String; >>>>>> Buf : String; >>>>>> Dummy : THttpGetFlag; >>>>>> begin >>>>>> { Extract fields from posted data. } >>>>>> ExtractURLEncodedValue(ClientCnx.FPostedDataBuffer, 'FirstName', >>>>>> FirstName); >>>>>> ExtractURLEncodedValue(ClientCnx.FPostedDataBuffer, 'LastName', >>>>>> LastName); >>>>>> If FirstName:= 'one' then ----------now send him the file one.exe >>>>>> If FirstName:= 'two' then ----------now send him the file two.exe >>>>>> >>>>>> Your help is highly appreciated. >>>>>> >>>>>> Regards >>>>>> >>>>>> Juri Keyter >>>>>> >>>>>> >>>>>> -- >>>>>> To unsubscribe or change your settings for TWSocket mailing list >>>>>> please goto http://www.elists.org/mailman/listinfo/twsocket >>>>>> Visit our website at http://www.overbyte.be >>>>> >>>>> -- >>>>> To unsubscribe or change your settings for TWSocket mailing list >>>>> please goto http://www.elists.org/mailman/listinfo/twsocket >>>>> Visit our website at http://www.overbyte.be >>>>> >>>> >>>> -- >>>> To unsubscribe or change your settings for TWSocket mailing list >>>> please goto http://www.elists.org/mailman/listinfo/twsocket >>>> Visit our website at http://www.overbyte.be >>> >>> -- >>> To unsubscribe or change your settings for TWSocket mailing list >>> please goto http://www.elists.org/mailman/listinfo/twsocket >>> Visit our website at http://www.overbyte.be >>> >> >> -- >> To unsubscribe or change your settings for TWSocket mailing list >> please goto http://www.elists.org/mailman/listinfo/twsocket >> Visit our website at http://www.overbyte.be > > -- > To unsubscribe or change your settings for TWSocket mailing list > please goto http://www.elists.org/mailman/listinfo/twsocket > Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be