繁体   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