从使用ASP脚本的远程服务器下载PHP文件

时间:2019-06-18 09:56:48

标签: php curl download

我正在尝试运行我的PHP脚本以从远程服务器上下载文件。当远程URL直接指向文件时,例如“ http://example.com/files/file.pdf,我的脚本可以正常工作。

问题是,大多数文件都在ASP服务器上,并且我没有直接指向文件路径的URL。而是ASP服务器正在运行脚本来下载文件。这些网址是这样的:“ http://example.com/files/GetFile.aspx?Id=2722&Autoresolve=True”。

因此,当我尝试读取ASP服务器的文件内容时,会获得页面的文字标记。

这是我目前的代码:

$url = 'example.com/file.pdf';
$uploadfile = 'myserver.com/file.pdf';
$contents = file_get_contents($url);
$savefile = fopen($uploadfile, 'w');
fwrite($savefile, $contents);
fclose($savefile);

当脚本为目标文件提供服务时,我似乎无法在线找到任何示例。

这甚至有可能吗?我需要看什么?

1 个答案:

答案 0 :(得分:0)

最有可能意味着您需要先进行Cookie会话,然后才能尝试下载。有时,您甚至必须发起下载请求并获得唯一的下载URL,然后才能实际进行下载。有时您甚至必须先登录才能进行实际下载。

您可以使用Fiddler代理来查看浏览器发出的下载请求(大多数浏览器(至少是FireFox和Chrome)使您难以查看文件下载请求,因此即使使用内置的Fiddler代理也需要Fiddler代理)在开发工具中),查找cookie会话ID或外观独特的令牌,有时它们在cookie中(如PHPSESSID),有时在URL中(如/getFile.asp?id=123&token=qawsedrfgvbhnjm),有时在HTTP标头(如X-download-token: awsxdcfgbhn

..但是由于您没有共享要从中下载的实际网站,因此这里没有人可以确切告诉您特定网站的需求。