我必须通过curl生成一个xls文件并将其发布到服务器。我只是从db获取数据,制作该文件的第一个版本并将其保存在我的服务器上,然后阅读并通过curl将其发布到远程服务器。
显然,远程服务器上的该文件的验证存在问题,该脚本读取了实际上不存在的标题列。
使用Microsoft Excel打开文件,只需按保存并关闭即可解决该问题,但这不是一个可行的选择。
您能提出一些不同的建议吗?这是我生成文件的代码
$dataToExport = $this->db->getAll($query);
$savePath = '/path/to/my/server';
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->fromArray($dataToExport, NULL, 'A1');
$sheet->setTitle("Foglio1");
$writer = new Xls($spreadsheet);
$writer->save($savePath);
$cFile = curl_file_create($savePath);
$post = array('file_contents'=> $cFile);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
curl_setopt($ch, CURLOPT_URL,'http://www.url.to/remote/server');
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);
答案 0 :(得分:0)
很抱歉,但是我认为最好的解决方案是使用tmpfile()
:
$temp = tmpfile();
fwrite($temp, $result);
fseek($temp, 0);
fclose($temp);
它与PHPSpreadSheet库一起使用。 下一个到达这里的解决方案,因为它在PHPSpreadSheet搜索中排名靠前。
谢谢。