【问题标题】:Find path of file downloaded via php查找通过php下载的文件的路径
【发布时间】:2023-03-11 21:38:01
【问题描述】:

我目前正在尝试查找要从中下载的文件的源路径。我不知道如何解释,但我会尽力而为。

我向我们的服务器发送了一个GET 请求,它看起来像:GET /en/download.php?pod_id=2138。服务器从这里开始回复:

Set-Cookie: PHPSESSID=neatgv4m7a1pdorjqmoo76s151; path=/  
Content-disposition: attachment; filename=2015-09-06-2.wav  
Connection: close  
Transfer-Encoding: chunked  
Content-Type: Application/octet-stream  

我当然使用 WireShark 捕捉到了这一点。接下来是完整的 WAV 文件,但我会放过我们。

我很好奇我是否可以获得2015-09-06-2.wav 的路径,以便我能够以这种方式下载文件。这是可能的还是服务器不允许我这样做?

【问题讨论】:

  • 我不确定您所要求的是否可行。正确编写的服务器不应该公开本地路径。
  • 我决定删除我的答案并投票结束这个问题。尝试直接访问服务器所有者不允许您首先访问的文件,感觉就像您在试图规避某种付费系统,或者更糟糕的是,访问自己上传的错误文件。
  • 我向你保证 icecub 我没有做任何恶意。我只是自动化下载免费提供的每日 .wav 文件的过程。
  • 你的意图是否光荣并不重要。不光彩的人将来会访问这个问题并使用这些信息做他不应该做的事情。

标签: php


【解决方案1】:

出于安全原因,Download.php 将提供该文件。因此,如果足够安全,则无法直接直接访问文件或文件夹。使用 .htaccess 可能会阻止直接访问,或者可能会将其放置在公众无法直接访问的地方,或者文件(blob)可能会根据下载请求从数据库中直接获取。php

如果它不受直接访问的保护,则该文件位于服务器中某个文件夹的某个位置。找到了就可以访问了。但是没有线索就没有办法找到它。浏览一下你可能会发现。

如果 php 文件以这种方式提供直接访问,则很可能无法直接访问。

【讨论】:

    【解决方案2】:

    简而言之:不可能:

    下载文件夹是一个特定于浏览器的位置,只有用户可以控制。该文件将下载到用户指定的文件夹中。

    使用 readfile 和 header 来强制显示 Save As... 对话框。

    <?php
    header('Content-disposition: attachment; filename=image.jpg');
    header('Content-type: image/jpeg');
    readfile('/server/path/to/image.jpg');
    ?>
    

    Get the path of the downloads folder in PHP?

    【讨论】:

    • 我不确定我对自己的解释是否足够好。我正在客户端机器上工作,试图从服务器下载文件。我试图找到文件存储在服务器上的路径,以便我可以直接从那里下载文件(而不是通过 download.php )。
    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2012-02-25
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 2011-12-29
    相关资源
    最近更新 更多