FurtiveFelon
FurtiveFelon

Reputation: 15156

How to write php so that the correct file can be downloaded over linux command line?

So basically i have a problem where the user will send a request to test.php?getnextfile=1, and i need to process the request and figure out what is the next file in line to be downloaded, and deliver it to the user. The part that i'm stuck on is how to get the correct filename to the user (the server knows the correct file name, user doesn't).

Currently i've tried to use wget on the test.php?getnextfile=1, and it doesn't actually save with the correct filename. Also tried to header redirect to the correct file, and that doesn't work either.

Any ideas?

Thanks a lot!

Jason

Upvotes: 0

Views: 1330

Answers (2)

Jon Nalley
Jon Nalley

Reputation: 511

In your php script you need to set the 'Content-Disposition' header:

<?php

header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="myfile.zip"');
readfile('myfile.zip');

?>

Use curl instead of wget to test it.

curl --remote-name --remote-header-name http://127.0.0.1:8080/download

Upvotes: 0

theamk
theamk

Reputation: 1664

Since Jul 2010, this is impossible in default wget configuration. In process of fixing security bug, they switched "trust-server-names" option off by default. For more information, see this answer:

https://serverfault.com/questions/183959/how-to-tell-wget-to-use-the-name-of-the-target-file-behind-the-http-redirect

Upvotes: 1

Related Questions