【问题标题】:Download and save a file using php (keeping original filename)使用 php 下载并保存文件(保留原始文件名)
【发布时间】:2015-06-09 17:17:46
【问题描述】:

我正在尝试下载和保存类似 (http://www.example.com/bajar.php?id=420633&u=7) 的文件,但保留原始文件名。

我已经搜索并找到了这段代码:

file_put_contents('test.rar', file_get_contents('http://www.example.com/bajar.php?id=420633&u=7');

但是在这种情况下我必须手动输入文件名'test.rar',我怎样才能获得原始文件名?

非常感谢!

【问题讨论】:

  • 我不知道那个帖子有什么帮助。我想下载 URL 中的文件并将其保存在我的服务器中。我不想让其他人下载。
  • 抱歉,您提供了我认为适合您的用户的链接。这是您所描述的案例的线程stackoverflow.com/questions/11842721/…。您应该删除该链接。
  • 好的,我将链接替换为“example.com”。该线程中的所有函数都不适合我,结果是“bajar.php”而不是原始文件名。

标签: php file download


【解决方案1】:

这是我链接到的主题的改编版,应该适用于您的情况。正则表达式正在寻找最后一个“/”,然后返回它之后的所有内容。

<?php
function get_real($url) {
    $headers = get_headers($url);
    foreach($headers as $header) {
        if (strpos(strtolower($header),'location:') !== false) {
            return preg_replace('~.*/(.*)~', '$1', $header);
        }
    }
}
echo get_real('http://www.example.com/bajar.php?id=420633&u=7');
?>

【讨论】:

  • 这正是我所需要的。谢谢克里斯85!
  • 我认为这不适用于 Google Drive 直接链接
猜你喜欢
  • 2020-02-16
  • 2021-02-07
  • 2012-04-12
  • 2022-01-26
  • 2016-03-25
  • 2016-03-05
  • 2018-07-26
  • 1970-01-01
相关资源
最近更新 更多