I can now download the file as application/octet-stream but it won't
allow me to open the file inline as a PDF. The only way I managed to be
able to download the file at all was by stripping the URL from the front
of the filename (I think).
What am I doing wrong??
$pfile = str_replace('get.php?file=','','$file');
$p = explode('.', $pfile); 
$extension = $p[sizeof($p)-1];

$pfile when echoed is $file
$file when echoed is the correct name of the file which is even more
confusing.
I figured that $file would include the URL which might be why it hanged
explorer.

Steve Jackson
Web Development and Marketing Manager
Viola Systems Ltd.
http://www.violasystems.com
[EMAIL PROTECTED]
Mobile +358 50 343 5159





> -----Original Message-----
> From: Steve Jackson [mailto:[EMAIL PROTECTED] 
> Sent: 17. syyskuuta 2003 13:53
> To: 'PHP General'; 'Jon Haworth'
> Subject: RE: [PHP] Getting part of a string...Was protecting 
> a file via php
> 
> 
> Thanks to all so far.
> However I am still having problems I have directory outside 
> the root with PDF's in it. The links to the PDF files are 
> called successfully by this function in a page I call getlinks.php
> 
> function do_non_root_links()
> {
> define('FILEDIR', '/home/.sites/144/site281/downloads/'); 
> //display available files
> $d = dir(FILEDIR); 
>     while($f = $d->read()) 
>     { 
>        //skip 'hidden' files 
>        if($f{0} != '.') 
>        {
>               echo "<tr><td>"; 
>         echo "<a href=\"get.php?file=$f\" 
> class=\"greenlinks\" target=\"_blank\">$f</a>"; 
>         echo "</td></tr>";
>               } 
>     } 
> $d->close(); 
> }
> 
> The URL displayed is then to be processed by get.php. My problem *I
> think* is losing get.php?file= from the URL which I managed 
> to do by doing $pfile = str_replace('get.php?file=','','$file');
> This however then becomes confusing because $pfile I assumed 
> would then be simply the filename without the URL. I figured 
> that if I exploded the name and pulled the extension from the 
> file passed that into a switch to send the appropriate header 
> my problem would be solved. However it isn't. This is the 
> code and de-bugging I've done. <? 
>     define('FILEDIR', '/home/.sites/144/site281/downloads/'); 
>     $path = FILEDIR . $file; 
> 
>     //check that this file exists and that it doesn't include 
>     //any special characters 
>     if(!is_file($path) OR !eregi('^[A-Z_0-9][A-Z_0-9.]*$', $file)) 
>     { 
>         header("Location: error.php"); 
>         exit(); 
>     } 
> 
>     /* 
>     ** //check that the user has permission to download file 
>     ** if(user does not have permission) 
>     ** { 
>     **     //redirect to error page 
>     **     header("Location: error.php"); 
>     **     exit(); 
>     ** } 
>     */ 
> 
> 
>       $pfile = str_replace('get.php?file=','','$file');
>       $p = explode('.', $file); 
>       $extension = $p[sizeof($p)-1];
>       // debug - remove the headers and test output vars.
>       echo "Test and $extension";
>       echo "<br>Test and $file";
>       echo "<br>Test and $p";
>       echo "<br>Test and $pfile";
>     /*switch ($extension)
>       {
>       // define headers depending on $extension variable.
>       case "doc" :
>       header("Content-type: application/msword\n");
>       break;
>       case "pdf" :
>       header("Content-type: application/pdf\n");
>       break;
>       default :
>       // force download dialog if no extension defined.
>       header("Content-type: application/octet-stream\n"); 
>     header("Content-disposition: attachment; filename=\"$file\"\n");
>       break; 
>       } 
>     
>       header("Content-transfer-encoding: binary\n"); 
>     header("Content-length: " . filesize($path) . "\n"); 
>       //send file contents 
>     $fp=fopen($path, "r"); 
>     fpassthru($fp); 
>       */
> ?> 
> 
> Echoing the vars produces this. The exploded file 
> ($extension) is what I need to pass to the switch but if I 
> send the headers as is again I get a blank and corrupted 
> explorer window. 
> 
> Test and pdf
> Test and EventNotification_01.pdf
> Test and Array
> Test and $file
> 
> Any ideas how to proceed?
> Cheers,
> 
> Steve.
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to