LiteSpeed Support Forums

LiteSpeed Support Forums (http://www.litespeedtech.com/support/forum/index.php)
-   PHP (http://www.litespeedtech.com/support/forum/forumdisplay.php?f=19)
-   -   [solved] Force Download or any better than readfile() (http://www.litespeedtech.com/support/forum/showthread.php?t=6079)

redstrike 07-09-2012 03:11 PM

[solved] Force Download or any better than readfile()
 
I want to force download files instead of letting browsers handle files automaticaly. My files are stored on a remote server. Is there any way better than using readfile() to buffer download?

I see the Internal Redirect, but it's not working.

webizen 07-09-2012 03:45 PM

Can you be more specific about your implementation? The internal redirect is as follows for reference.

http://www.litespeedtech.com/support...ernal_redirect

redstrike 07-09-2012 08:31 PM

I have 2 servers, 1 for running PHP apps and database, 1 for streaming and download medium static files.

I was using this line of PHP code to handle download.

PHP Code:

header('Location: ' $external_media_url); 

It's good in performance but lacking of convenience for my users, IE users must Save target as..., or browsers auto-handle this with their inline media player.

I've searched around the internet for a coupe of hours, but everyone is using these line of codes for their download feature.

PHP Code:

        $filename basename($url).PHP_EOL;
        
$filesize getRemoteFileSize($url);            
        
header('Content-Description: File Transfer');        
        
header('Expires: 0');
        
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        
header('Pragma: public');
        
header('Content-Disposition: attachment; filename =' $filename);
        
header('Content-Length: ' $filesize);
        
readfile($url); 

This works GREAT, but i see an impact to client's speed rate and long processing time to serve a download, because it must read entire filesize in the external server and re-buffer to serve client.

webizen 07-10-2012 10:58 AM

if you want to use LSWS internal redirect, you need the download and PHP app on the same server or download being the local path to PHP app (or via nfs mount).

redstrike 07-10-2012 09:56 PM

Quote:

Originally Posted by webizen (Post 34295)
if you want to use LSWS internal redirect, you need the download and PHP app on the same server or download being the local path to PHP app (or via nfs mount).

I follow this guide: http://drupal.org/node/417866

AND it works like a charm.

NiteWave 07-11-2012 10:07 AM

paste the tip here:
Code:

in .htaccess:
<FilesMatch "\.(?i:doc|odf|pdf|rtf|txt)$">
  Header set Content-Disposition attachment
</FilesMatch>



All times are GMT -7. The time now is 05:54 AM.