目前我们使用表单创建CSV文件以便在本地下载和保存。然后使用第二个表单上传文件并将其发布到另一个页面
PHP创建CSV
$var1 = $_POST["var1"];
$var1 = $_POST["var2"];
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="tmog.csv"');
echo $var.",".$var2."\n";
用于创建CSV的HTML表单
<form action="./functions/csv.php" method="post" target="_blank">
<h4 class="text"> Create CSV</h4>
<div class="form-group"><input type="text" class="form-control" name="var1" placeholder="Var1"></div>
<div class="form-group">
<select name='var2' class='form-control'>
<option value='' selected disabled>Select Plan</option>
<option value='Test'>Test</option>
<option value='Test1'>Test1</option>
</select>
</div>
<div class="form-group"><button class="btn btn-warning btn-block" type="submit">Give me CSV</button></div>
</form>
上传csv文件并发布到其他页面的第二个表单
<form enctype='multipart/form-data' method='POST' action='other_page.cgi' target='rumba_output'>
<label id='file_browse_indicator'>CSV file:</label>
<input name='csv_file' type='file' value='' id='file_browse'>
<button name='action' value='submit' id='submit_button' onClick='this.form.submit()'>Go!</button>
</form>
无论如何,我试图做的是跳过:
理想情况下,我想:
到目前为止,我已尝试使用php(Like in this article)将csv写入temp,然后使用cURL对其进行POST,但我发现我无法访问服务器上的cURL。
这是我一起砍下的php
$var1 = $_POST["var1"];
$var2 = $_POST["var2"];
$fd = fopen('php://temp/maxmemory:1048576', 'w');
if($fd === FALSE) {
die('Failed to open temporary file');
}
$values = array($var1, $var2);
fputcsv($fd, $values);
rewind($fd);
$csv = stream_get_contents($fd);
fclose($fd);
//post to other_page.cgi
$url = 'http://domain.com/other_page.cgi';
$fields = array('csv_file' => $csv);
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
curl_close($ch);
显然我对此没有很好的理解,但是非常感谢任何帮助
答案 0 :(得分:0)
cURL将是一个很好的解决方案。在您的服务器上禁用cURL是非常奇怪的,它很普遍。尝试启用或安装。
但是,除了cURL之外,PHP还有其他方式来POST数据(文件)。
1)阅读 stream_context_create 函数。此外,也许这个链接会有所帮助:
2)我在我的项目中使用HttpRequest并发现它非常有用。您可以在官方文档中阅读更多内容:http://php.net/manual/en/class.httprequest.php