所以,我有一个PHP脚本(脚本1),它是一个基本的网页,我向用户回应一些文字。每当用户加载脚本1时,我想POST到具有以下标题的PHP脚本:
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=EXCBOSSTesting.xls");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
我正在使用cURL来调用脚本,但它并没有像我想要的那样下载文件。请记住.xls文件在调用后会生成,它不会作为服务器上的静态文件存在。这是我目前的代码。
$url = "http://mywebsite.com/script2.php";
$fields = array(
'foo' => 'bar',
'user' => 'currUser'
);
$postVars = http_build_query($fields);
//open the connection
$ch = curl_init();
$user = 'example';
$pass = 'examplePass';
$headers = array("Content-Type: application/vnd.ms-excel; charset=utf-8");
curl_setopt($ch, CURLOPT_USERPWD, $user . ":" . $pass);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
curl_exec($ch);
// close connection
curl_close($ch);
如果我在浏览器中访问script2的URL,它将下载.xls文件,它可以正常工作。我在这里缺少什么?