将文件保存到具有强制下载标头的本地服务器
我试图从正在被迫通过浏览器下载的远程服务器“复制”文件。远程文件输出为标题如下:将文件保存到具有强制下载标头的本地服务器
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
我不太明白。你想要一台服务器来保存一个文件,但它使用浏览器? 以下应该做你以后的事
$ file ='www.exmple.com/mytext.txt';
//打开文件,以获取现有内容
$电流=的file_get_contents($文件);
//写的内容回文件
file_put_contents( “用户/路径/到/文件/ mytext.txt”,$电流);
+1够好,而且很简单。 – UnkwnTech 2011-03-01 00:42:01
不,请参阅...该文件位于远程服务器上,并且它正在输出一个标题,该标题强制浏览器在您访问该URL时显示另存为对话框。我需要它在窗口中输出而不是显示那个对话框 – ShadowPuppet 2011-03-01 00:50:29
你想拷贝这个该死的远程文件吗?正常地阅读它! DOH – dynamic 2011-03-01 01:03:37
在其他人file_get_contents
即使服务器发送内容处置工作。
检查您的PHP版本及其错误。
版本5.2.14,我不知道,但它不适用于这个网站...也许有一些其他的保护背后?有没有一种方法明确否认PHP提取它? – ShadowPuppet 2011-03-01 01:25:34
他们可以添加的唯一“保护”是检查请求标头。尝试添加一个像User-Agent这样的IE浏览器来自他们的网站或类似 – dynamic 2011-03-01 01:36:28
我也会添加:从其他网站窃取文件和内容是不合法的 – dynamic 2011-03-01 01:37:50
事实上,浏览器发送内容处置并不会阻止您获取数据无论如何,大声笑 – dynamic 2011-03-01 00:33:32