我试图将post文件信息传递给upload.php文件,并将该信息发送到CGI脚本。网上没有什么关于如何去做我能找到的,我花了好几天。我知道有一些人需要这个,它可以帮助我们所有拥有遗留perl脚本的人。
数据流:
Jquery - > Upload.php - >的index.cgi
我的php:
<?php
if(isset($_FILES['file'])) {
if(move_uploaded_file($_FILES['file']['tmp_name'], "../index.cgi" . $_FILES['file']['name'])){
echo "success";
exit;
}
}
?>
调用CGI示例:
foobar.com/index.cgi?act=store&data=$filename
任何建议都会有所帮助。谢谢。
答案 0 :(得分:2)
据我了解,您的CGI脚本正在接收一个参数,该参数是上传脚本的路径。但是,您尝试使用仅在不执行脚本的情况下将文件从1个位置移动到另一个位置的函数将上载的脚本传递到CGI脚本。 我的建议是做以下
<?php
if(isset($_FILES['file'])) {
$destination = "new/path/to/".$_FILES['file']['name'];
if(move_uploaded_file($_FILES['file']['tmp_name'], $destination)){
$data = array();
//You can add multiple post parameters here
//$data = array('param1' => 'value1', 'param2' => 'value2');
$url = "http://url/to/hello.cgi";
// You can POST a file by prefixing with an @ (for <input type="file"> fields)
$data['file'] = '@'.$destination;
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_POST, true);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($handle);
if($result) {
echo "success";
}
exit;
}
}
?>
您可以通过CURL POST执行cgi脚本并传递您想要的任何参数