【发布时间】:2010-12-27 09:33:54
【问题描述】:
这是我的问题。我有一个不是很“用户友好”的票证跟踪系统,但我希望我的用户在不让他们看到的情况下向系统提交“票证”。
我只使用自定义 HTTP 表单并发布到票务跟踪系统。一个问题是“成功/完成”页面容易混淆人们。所以我想......好吧,因为我无法更改票务系统以使用不同的“成功”页面。我将只处理与 CURL 的 HTTP Post 交换并报告自定义成功或问题页面。这是一些抽象的代码。
文件:tickethelper.php
<?php
extract($_POST);
$url = 'TICKETSYSTEMURL';
$fields = array(
'fullname'=>urlencode($fullname),
/*many more fields*/
);
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);
curl_setopt($ch, CURLOPT_MAXREDIRS, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
curl_close($ch);
if((strlen(strstr($contents,'Your ticket has been submitted')))>0){
header("Location: http://THANKYOU");
}
else{
header("Location: http://OOPS");
}
?>
但是,我意识到我错过了文件上传。我见过的大多数 CURL 示例都与将本地文件上传到远程 HTTP POST 页面有关。
我如何处理从我的用户 HTTP 表单接收文件,在 'tickethelper' 中处理它并将其发布到 'TICKETSYSTEMURL' ?
-以色列
【问题讨论】:
标签: php http file-upload curl https