php获取可下载文件的文件内容

时间:2013-11-21 16:07:08

标签: php csv

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文件,因此无法更改其运作方式。

2 个答案:

答案 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