Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Sedki's avatar
Level 2

Get PDF file from url

0 likes
5 replies
rodrigo.pedra's avatar

Try this:

$contents = file_get_contents('https://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=5223955&DocType=Customer+Drawing&DocLang=English');

\Storage::disk('public')->put('filename.pdf', $contents);
  1. it will save to storage/app/public
  2. run php artisan storage:link to create an alias in the public folder
rodrigo.pedra's avatar

In this SO answer there are other approaches you can try:

https://stackoverflow.com/a/724449/1211472

Check if your php.ini has allow_url_fopen=true

At last resource you could try a PHP HTTP Client such as Guzzle or Symfony HTTP Client, but both will rely on techniques described in the link above.

rodrigo.pedra's avatar
Level 56

Try this:


Route::get('download', function () {
   $url = 'https://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=5223955&DocType=Customer+Drawing&DocLang=English';

   // Create a stream
   $opts = [
       "http" => [
           "method" => "GET",
           "header" => "Host: www.te.com\r\n"
               . "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0\r\n"
               . "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
               . "Accept-Language: en-US,en;q=0.5\r\n"
               . "Accept-Encoding: gzip, deflate, br\r\n"
       ],
   ];

   $context = stream_context_create($opts);
   $data = file_get_contents($url, false, $context);

   \Storage::disk('public')->put('filename.pdf', $data);

   return 'OK';
});
2 likes

Please or to participate in this conversation.