2016-09-23 41 views
-1

我必須在本地選擇一個文件並在python腳本中使用它。交換數據php javascript

enter image description here

我不能得到的文件名,以有它在,我用它來調用PHP函數我的AJAX腳本。 這是我的javascript,所謂的onclick過OK按鈕:

function myAjax() { 
    $.ajax({ type : 'POST', 
     data : {}, 
     url : 'action.php',    
     success: function (data) { 
      alert(data);    
     }, 
     error: function (xhr, status, error) { 
      // executed if something went wrong during call 
      if (xhr.status > 0) alert('got error: ' + status); // status 0 - when load is interrupted 
     }, 
     complete: function (data) { 
      setImg(); 
     } 
    }); 
} 

這是用來調用python腳本的php腳本:

<? 
function bb(){ 
    $out = shell_exec('python heatmap.py'); 
    echo "ok"; 
    $fp = fopen('log.txt', 'w'); 
    fwrite 

($fp, $out); 
    fclose($fp); 
} 
bb(); 
?> 

我不得不從瀏覽按鈕需要的文件名,並將其發送給確定按鈕,在那裏調用python。 從input =「file」html,javascript和php交換數據的正確方法是什麼?

+0

你需要通過ajax上傳文件嗎? – cmnardi

+0

@cmnardi不,我需要文件名以便用該輸入文件執行腳本 – slash89mf

+0

因此,您想要將操作系統的文件名傳遞給JS,然後將它傳遞給PHP腳本,然後調用python腳本? – Gary

回答

0

我在這裏做了很多假設的問題並不完全清楚......

但想必你想已經從操作系統中選擇一個文件名。在JS中,您可以使用以下方法執行此操作。

var fileName, oForm = document.getElementById('my-file'); oForm.onchange = function(){ fileName = this.files[0].name; }

然後在你的AJAX調用時,fileName變量添加到您的data財產。

data : {"filename":fileName},

然後在通過$_POST可變你的PHP訪問它。所以...

echo $_POST['filename'];