Coult在网上找不到任何类似的问题,所以我的情况如下:
我有一个.jsp"网页"根据特定参数生成.csv文件。 例如,如果我使用浏览器打开网站,请输入:
redownloadsubmitter.jsp?id=225&batch_id=2013_11_20&orgshort=NEP
然后,脚本使用查询字符串中的数据并生成匹配的.csv文件,名为:NEP_DETAILS_2013_11_20.csv
现在我想要的是不要手动使用我的浏览器,打开脚本并将文件下载到我的本地硬盘。相反,我想使用一个抓取内容的PHP脚本,然后根据我的需要进一步格式化它。
我考虑过以下代码,但这不起作用。相反,当我尝试它时,它不会返回任何空网站。
$download = file_get_contents('redownloadsubmitter.jsp?id=225&batch_id=2013_11_20&orgshort=NEP');
echo $download;
还有其他想法吗?
注意:以防万一有人提出这个问题:我无权访问.jsp文件,因此无法更改其运作方式。
答案 0 :(得分:2)
file_get_contents()
并不聪明,也不知道这是您传入的网址。它正试图打开一个名为redownloadsubmitted.jsp.etc.....
的本地文件。
如果您希望f_g_c()执行HTTP操作,那么您必须包含一个完整的URL:
$download = file_get_contents('http://example.com/redownloadsubmitter.jsp etc....');'
答案 1 :(得分:0)
请尝试使用此代码下载文件。
<?php
/**
* $filename filename in server
* $downloadname filename when download file
*/
$filename = __FILE__;
$dowloadname = 'PHPDownload.php';
Header("content-type:application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($filename));
Header("Content-Disposition: attachment; filename=".$dowloadname);
if(file_exists($filename) && $fp=fopen($filename,"r")) //file exists and open it
{
echo fread($fp,filesize($filename)); //read write to the browser
fclose($fp);
}
//End_php