It goes into a link to whatever PHP file you're using to return the contents of the .PDF. It would work in the address field in the browser, too. I don't see why you're typing http://localhost/test.php/whatever.pdf into the address field since that isn't the URL I told you to use. I said:
http://whatever/stuff.php?options/desired_filename.pdf As you can see, instead of stuff.php put the name of the php file that has your code to return the binary contents of the .pdf file. You can follow it with whatever optional parameters you want in the query string (i/e after the '?' question mark), either way, make sure at the very end of the address is a slash '/' followed by the desired filename you want to use, ending in .pdf. -Mike At 05:58 PM 2/26/02 +0100, you wrote: >Is the example below meant to go into a link (<a href=***></a>)? >Or is it meant for the address field on the browser? >If I type "http://localhost/test.php/whatever.pdf" in the address field I >get a server error which I was also expecting to be hornest. I don't see how >that should work. > > >"Mike Flynn" <[EMAIL PROTECTED]> wrote in message >[EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > Use a slash and then the filename.pdf. So > > http://whatever/stuff.php?options/desired_filename.pdf would do it. It's > > ok that you aren't linking to a real file, it doesn't matter. Just the > > file that you want the .pdf document to be known as to the user's browser. > > > > At 05:07 PM 2/26/2002 +0100, Sviss Cobazor wrote: > > >Hmm in my case there is no file to link to. The pdf document doesn't >exist, > > >it's generated on-the-fly. Take this example: > > > > > >test.php contains: > > > > > ><? > > >function topdf($file, $options = "") { > > > header("Content-Type: application/pdf"); > > > flush(); > > > passthru("C:\htmldoc -t pdf14 --quiet --jpeg size A4 --webpage $options > > >\"$file\""); > > >} > > > > > >$url = "http://localhost/whatever.html"; > > > > > >topdf($url); > > >?> > > > > > >So the idea was to write the address "http://localhost/test.php" and the > > >browser would load Acrobat Reader and show the pdf document generated >from > > >"whatever.html". > > > > > >So how do I get the ".pdf" added? > > >By typing the address "http://localhost/test.php?.pdf" ? Doesn't seem to > > >work. > > > > > >"Mike Flynn" <[EMAIL PROTECTED]> wrote in message > > >[EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > > > Yes, this has been documented extensively on the web. The fix is to >put a > > > > pdf extension at the end of the url call to your script that is >returning > > > > the pdf file. You can use an arbitrary filename ending in .pdf, or >you > > >can > > > > use the actual filename of the .pdf file, which would be preferable so > > >that > > > > if the user tries to save the .pdf file, the default filename is > > > > correct. So what this means is that the script that is linking to >your > > > > .pdf-returning script needs to know the filename/that it is a .pdf >file, > > > > ahead of time. So you want to do something like this: > > > > > > > > <?php > > > > $query = 'SELECT strFileFilename FROM tblFiles '; > > > > $query .= "WHERE intFileID=$id"; > > > > $filename = mysql_result(mysql_query($query), 0); > > > > print "<a href=\"/stuff/getfile.php?id=$id/$filename\">Here's the > > >PDF</a>\n"; > > > > ?> > > > > > > > > -Mike > > > > > > > > At 03:09 PM 2/26/2002 +0100, Sviss Cobazor wrote: > > > > >However, sigh, IE seems to have a bug so that Acrobat Reader is only > > >loaded > > > > >when the URL ends with ".pdf" aka IE doesn't give a rats about the >header > > > > >sent to it. > > > > >Using Telnet I can see that the pdf page is returned correctly but >when > > > > >using IE I still get a blank page due to the fact that no >(pre-generated) > > > > >pdf document is sent to it and therefore the URL doesn't contain a > > > > >"whatever.pdf" ind the end and therefore doesn't load Acrobat Reader. > > > > >Look at this example: > > > > > > > > > >header("Content-Type: application/pdf"); > > > > >flush(); > > > > >passthru("C:\htmldoc -t pdf14 --quiet --jpeg size A4 --webpage > > > > >\"http://localhost/whatever.html\""); > > > > > > > > > >This works fine with Telnet (where output is nonsense), > > > > >but doesn't with IE (where the output would make sense). > > > > > > > > > >Does anyone have a solution to this? > > > > >How to get IE to understand that the data sent to it is to be handled >as > > >a > > > > >pdf document (as in load Acrobat Reader)? > > > > > > > > > > > > > > > > > > > >"Sviss Cobazor" <[EMAIL PROTECTED]> wrote in message > > > > >[EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > > > > > It seemed that it was Putty itself that wouldn't work for me >(don't > > >ask me > > > > > > why). > > > > > > So I used Telnet and it worked. > > > > > > After having my advicor (this is a education project) visiting me >we > > >found > > > > > > out why that passthru() function didn't work. > > > > > > It's very simple really, passthru() doesn't allow spaces in paths >so > > > > > > "C:\program files\etc." becomes "C:\program" => false path. > > > > > > Removing the application (htmldoc.exe) to "C:\" instead did the >job. > > > > > > > > > > > > For anyone else having same problems this is the correct way to >type > > >it > > > > >(my > > > > > > example): > > > > > > > > > > > > <? > > > > > > function topdf($filename, $options = "") { > > > > > > header("Content-Type: application/pdf"); > > > > > > flush(); > > > > > > passthru("C:\htmldoc -t pdf14 --quiet --jpeg size A4 --webpage > > > > >$options > > > > > > \"$filename\""); > > > > > > } > > > > > > ?> > > > > > > > > > > > > This function now works and sends the result pdf directly to the > > >browser. > > > > > > > > > > > > Thanks for your time Court, I wouldn't have thought of using >Telnet > > >myself > > > > > > :) > > > > > > > > > > > > ~ Sviss > > > > > > > > > > > > "Court Shrock" <[EMAIL PROTECTED]> wrote in message > > > > > > >[EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > > > > > > To explain the 400 bad request, you most likely had a typo when >you > > > > >typed > > > > > > in > > > > > > > the HTTP request. The request is case-sensitive and very > > >particular. > > > > > > Most > > > > > > > likely, the "Host: localhost" portion of the request messed up > > >somehow. > > > > > > > > > > > > > > When you get a "HTTP/1.1 200 OK" response, that means that the > > >webserver > > > > > > > accepted the request and will process your request. In order to > > >test > > > > > > > whether or not the passthru function is doing things properly, >you > > >are > > > > > > > verifying what is being sent to the browser by simulating what >the > > > > >browser > > > > > > > would send to your webserver and then what the browser is >getting in > > > > > > > response. It will all start to make sense when you start seeing > > >your > > > > > > files > > > > > > > output--of course, in the request that I had you type, I assumed >the > > > > >file > > > > > > > that returns the pdf is named "index.php" or whatever file your > > > > >webserver > > > > > > > will retrieve when it gets a root "/" request. If this is not >the > > >case, > > > > > > you > > > > > > > need to replace the "GET / HTTP/1.1" line with "GET >/yourfile.php > > > > > > HTTP/1.1" > > > > > > > or even "GET /yourfile.php?var1=whatever__yougettheidea >HTTP/1.1". > > > > > > > > > > > > > > passthru is working properly if you see something like: > > > > > > > HTTP/1.1 200 OK > > > > > > > Date: Mon, 25 Feb 2002 23:20:35 GMT > > > > > > > Server: Apache/1.3.20 (Unix) PHP/4.0.6 mod_ssl/2.8.4 >OpenSSL/0.9.6 > > > > > > > X-Powered-By: PHP/4.0.6 > > > > > > > Transfer-Encoding: chunked > > > > > > > Content-Type: application/pdf > > > > > > > > > > > > > > [lots of binary data] > > > > > > > > > > > > > > it isn't working if you see something like this: > > > > > > > HTTP/1.1 200 OK > > > > > > > Date: Mon, 25 Feb 2002 23:20:35 GMT > > > > > > > Server: Apache/1.3.20 (Unix) PHP/4.0.6 mod_ssl/2.8.4 >OpenSSL/0.9.6 > > > > > > > X-Powered-By: PHP/4.0.6 > > > > > > > Transfer-Encoding: chunked > > > > > > > Content-Type: text/html > > > > > > > > > > > > > > <html>some stupid html, or nothing at all</html> > > > > > > > > > > > > > > in which case, I would try a different method to verify that >data is > > > > > > > properly passing between php and htmldoc.exe. > > > > > > > > > > > > > > I hope this has addressed some of the confusion. > > > > > > > Court > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > From: Sviss Cobazor [mailto:[EMAIL PROTECTED]] > > > > > > > > Sent: Monday, February 25, 2002 5:12 PM > > > > > > > > To: [EMAIL PROTECTED] > > > > > > > > Subject: Re: [PHP-WIN] passthru() on Win98 ?? > > > > > > > > > > > > > > > > > > > > > > > > I followed your instructions and got: > > > > > > > > > > > > > > > > HTTP/1.1 400 bad request > > > > > > > > > Date: Tue, 26 Feb 2002 01:05:57 GMT > > > > > > > > > Server: Apache/1.3.20 (Win32) > > > > > > > > > Connection: close > > > > > > > > > Content-Type: text/html charset=iso-8859-1 > > > > > > > > > > > > > > > > ... And then the same in html source ... (in the putty window) > > > > > > > > > > > > > > > > So I didn't get what was expected but either way I'm not sure > > > > > > > > what to do if > > > > > > > > I did. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >-- > > > > >PHP Windows Mailing List (http://www.php.net/) > > > > >To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > > > > > -- Mike Flynn - Burlington, VT -- > > > > mike @ mikeflynn.net > > > > http://www.mikeflynn.net/ > > > > home=>work=>home=>store=>home [adbusters] > > > > > > > > > > > > > > > >-- > > >PHP Windows Mailing List (http://www.php.net/) > > >To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > -- Mike Flynn - Burlington, VT -- > > mike @ mikeflynn.net > > http://www.mikeflynn.net/ > > home=>work=>home=>store=>home [adbusters] > > > > > >-- >PHP Windows Mailing List (http://www.php.net/) >To unsubscribe, visit: http://www.php.net/unsub.php -- Mike Flynn -- mike @ mikeflynn . net home => work => home => shop => home [adbusters] -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php