将文件保存到具有强制下载标头的本地服务器

问题描述:

我试图从正在被迫通过浏览器下载的远程服务器“复制”文件。远程文件输出为标题如下:将文件保存到具有强制下载标头的本地服务器

HTTP/1.1 200 OK
服务器:nginx
日期:星期二,2011 03月01日〇点19分21秒GMT
内容类型:应用程序/ TXT
内容长度:170783
上次修改:星期二,2011年3月1日〇点00分43秒GMT
连接:关闭
内容处置:附件;文件名=“TITLES.TXT”
到期日:星期二,2011 03月01日2时19分21秒GMT
接受-范围:字节

我需要某种方法来覆盖附件内容处置,使PHP可以将文件复制到本地服务器。或者,或者从远程服务器将文件下载到本地的其他方式。

要下载的文件是一个简单的文本文件,通常会在浏览器中显示,但是我需要PHP在本地“下载”它作为一种缓存。

我看了看四周这个网站,但没有一个尝试,我发现工作> _ <

任何建议?

由于提前, ShadowPuppet

+1

事实上,浏览器发送内容处置并不会阻止您获取数据无论如何,大声笑 – dynamic 2011-03-01 00:33:32

我不太明白。你想要一台服务器来保存一个文件,但它使用浏览器? 以下应该做你以后的事

$ file ='www.exmple.com/mytext.txt';

//打开文件,以获取现有内容

$电流=的file_get_contents($文件);

//写的内容回文件

file_put_contents( “用户/路径/到/文件/ mytext.txt”,$电流);

+0

+1够好,而且很简单。 – UnkwnTech 2011-03-01 00:42:01

+0

不,请参阅...该文件位于远程服务器上,并且它正在输出一个标题,该标题强制浏览器在您访问该URL时显示另存为对话框。我需要它在窗口中输出而不是显示那个对话框 – ShadowPuppet 2011-03-01 00:50:29

+0

你想拷贝这个该死的远程文件吗?正常地阅读它! DOH – dynamic 2011-03-01 01:03:37

在其他人file_get_contents即使服务器发送内容处置工作。

检查您的PHP版本及其错误。

+0

版本5.2.14,我不知道,但它不适用于这个网站...也许有一些其他的保护背后?有没有一种方法明确否认PHP提取它? – ShadowPuppet 2011-03-01 01:25:34

+0

他们可以添加的唯一“保护”是检查请求标头。尝试添加一个像User-Agent这样的IE浏览器来自他们的网站或类似 – dynamic 2011-03-01 01:36:28

+0

我也会添加:从其他网站窃取文件和内容是不合法的 – dynamic 2011-03-01 01:37:50