第一種:
直接在前台以 js 給出 下載 的連結,這樣就佔不到 server 頻寬。
第二種:
後台 php 使用 http header 轉向,只佔微不足到的頻寬。
<?php
$url ='https://ithelp.ithome.com.tw/storage/image/ironman9thsidebar.png';
header('Location: '.$url);
?>
第三種:
後台 php 抓過來再送到前台:
<?php
$url ='https://ithelp.ithome.com.tw/storage/image/ironman9thsidebar.png';
$filename = basename($url);
header('Content-type:application/force-download');
header('Content-Disposition:attachment;filename='.$filename);
readfile($url);
?>
第三種顯得多餘又浪費頻寬。除非要加料再送給user,否則很少有人會這麼搞。
有點突然想到....
不知道這是不是你要的?
a > download 屬性
https://www.w3schools.com/tags/att_a_download.asp
有幾種做法
像是header('Content-type:application/force-download');
或者html的屬性<a href="/images/test.jpg" download="test">
他要的是遠端圖片下載,且不經由本端伺服器儲存的方式來做下載的。
這如果在php使用的話,一般是可以搭配fopen或是curl的方式。
讀取後再用echo輸出再用如上的
header('Content-type:application/force-download');
的標頭宣告處理。
其實我會比較建議用一下file_put_contents跟readfile。檔案還是儲存到本機後,下載操作才會比較單純。
畢竟~~~你不儲存的話。那就只剩下參數定義的方式了。一方面會吃ram的用量,另一方面則有可能碰上大檔無法讀取的問題。