2014-06-21 4 views
0

Im пытается передать информацию о файлах в файл upload.php и отправить эту информацию в CGI-скрипт. В сети нет ничего о том, как это сделать, что я могу найти, iv потратил дни. Я знаю, что есть несколько человек, которые нуждаются в этом, это может помочь нам всем, у кого есть устаревшие скрипты perl.Переместить файл загрузки с PHP на CGI

Dataflow:
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

является CGI Script доступен через HTTP (браузер)? –

+0

Да, это так! он может быть достигнут локальным и NAT. – Rapt0R

ответ

2

С моей точки зрения, ваш CGI-скрипт получает параметр, который является образом загруженного сценария. Однако вы пытаетесь передать загруженный скрипт на свой 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; 
    } 
} 

?> 

Вы можете выполнить сценарий CGI через CURL POST и передавать любой Params вы хотите

+0

Я полностью понимаю, что я пытаюсь это сделать сейчас, плохо держать вас в курсе. Большое вам спасибо ... – Rapt0R

+0

Итак, теперь, когда я понимаю ваш скрипт, мой cgi немного сложнее, а просто отбрасывает файл в области хранения. Сообщение должно быть обработано с помощью «act = store», а затем запускает другой скрипт, который обрабатывает данные. – Rapt0R

+0

есть ли другой способ, о котором вы можете думать? еще раз спасибо. – Rapt0R

Смежные вопросы