#php #jquery
#php #jquery
Вопрос:
Я пытаюсь передать информацию о файле post в upload.php файл и пусть эта информация будет отправлена в CGI-скрипт. В сети нет ничего о том, как это сделать, что я могу найти, iv потратил несколько дней. Я знаю, что есть несколько человек, которым это нужно, это может помочь нам всем, у кого есть устаревшие скрипты 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;
}
}
?>
Post вызов примера CGI:
foobar.com/index.cgi?act=storeamp;data=$filename
Любые предложения очень помогли бы. Спасибо.
Комментарии:
1. доступен ли скрипт CGI через HTTP (браузер)?
2. Да, это так! он может быть доступен локально и NAT.
Ответ №1:
Насколько я понимаю, ваш CGI-скрипт получает параметр, который является путем к загруженному скрипту. Однако вы пытаетесь передать загруженный скрипт в свой CGI-скрипт, используя функцию, которая должна перемещать файл только из 1 места в другое без выполнения скрипта. мое предложение состоит в том, чтобы сделать следующее
<?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;
}
}
?>
Вы можете выполнить скрипт cgi через CURL POST и передать любые параметры, которые вы хотите
Комментарии:
1. Я. Это полностью имеет смысл, я пытаюсь сейчас, я буду держать вас в курсе. Большое вам спасибо…
2. Итак, теперь, когда я понимаю ваш скрипт, мой cgi немного сложнее, чем просто удаление файла в хранилище. Сообщение должно быть обработано ?act=store это запускает другой скрипт, который обрабатывает данные.
3. есть ли другой способ, который вы можете придумать? еще раз спасибо.