[英]Renaming File on another server as user downloads it [2] - using PHP
我今天已經問過這個問題,但是這次我想知道是否可以通過PHP實現此功能,因為Javascript還不行。
我有一個指向另一台服務器上文件的鏈接。 如果我向用戶提供此鏈接,則標題將被推出以從該服務器下載該文件。
我是否可以捕獲這些標頭和文件,然后將下載重定向到用戶? 我想這樣做,以便可以更改下載文件名,因為它始終是“ file.zip”。
PHP有可能嗎?
感謝您的任何幫助。
您可以使用curl將文件下載到服務器並正確提供文件(帶有Content-Disposition標頭)。 只要使用HTTP,就無法僅發送標頭,而讓另一台服務器將內容直接流式傳輸到客戶端。
您可以執行此操作,並且可以通過多種方式執行。
1)(簡單)將文件復制到您的服務器,然后重命名。 將您的下載鏈接指向此副本。
2)(更難)創建一個名為stub的php文件,從php中的遠程服務器讀取該文件,並將內容流式傳輸到腳本輸出。 這將需要您設置適當的標頭等,以及設置網絡服務器以通過PHP進行解析。
認真地說,我會選擇選項1。(假設您具有提供內容的合法權利,等等)
也許您可以使用類似於以下腳本的腳本:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.example.com/the_path/file.zip");
header('Content-Disposition: attachment; filename="alternate_filename.zip"');
exit();
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.