【问题标题】:Finding the actual url/path of a file from its apparent url从文件的明显 url 中查找文件的实际 url/路径
【发布时间】:2010-11-10 00:16:08
【问题描述】:

我正在尝试通过使用 curl 的一些 php 代码将位于远程服务器上的文件的副本创建到我的服务器。问题是,该文件位于类似于 http://www.xyz.com/file.aspx...So 的 url 时这个 url 被使用/点击,它提示下载 .txt 文件,这正是我试图创建副本的文件....该 url 明确地没有给出文件名...... 它只在点击时提示.txt文件...那么有没有办法通过一些php代码找出这个url指向的文件?..提前谢谢...

-pcup

【问题讨论】:

  • 一个“。”一句话就够了。

标签: php file curl attachment


【解决方案1】:

如果你在命令行上执行'curl',你会得到你想要的文件吗? PHP 中的 CURL 库应该做同样的事情...如果您知道 GET 的 URL 以使服务器向您发送文件,则不需要知道文件的名称。

【讨论】:

  • 完全正确...我不需要文件的名称...我只想要它的副本。我问是否有可能找到它的路径的原因是因为它会让我的工作变得更容易......也欢迎任何替代品......
【解决方案2】:

网址没有“指向”任何地方。网址是您输入的网址。

服务器正在设置content-disposition MIME 标头。您可以通过 Curl 访问它,方法是将 CURLOPT_HEADER 选项设置为 curl_setopt()

【讨论】:

    【解决方案3】:

    aspx 文件可能会输出标题,告诉您的浏览器它要传输的文件的名称,然后发送文件的内容。我经常使用 PHP 代码来返回 pdf 文件:

    $filename = "/path/on/server/to/file.pdf";
    header("Content-Type: application/pdf");
    header("Content-Disposition: inline; filename=" . '"' . basename($filename) . '"' . ";");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: " . filesize($filename));
    set_time_limit(0);
    readfile($filename);
    

    当您向 aspx 页面发出 curl 请求时,请检查服务器返回的标头以确定正在返回的文件的实际文件名。

    【讨论】:

      猜你喜欢
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多