簡體   English   中英

用戶下載文件時在另一台服務器上重命名文件[2]-使用PHP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM