2016-09-23 10 views
-1

私はファイルをローカルで選択し、pythonスクリプトで使用する必要があります。Exchangeデータphp javascript

enter image description here

私はPHPの関数を呼び出すために使用する私のAjaxのスクリプトでそれを持っているために、ファイル名を取得することはできません。 これは、[OK]をボタンの上のonclickと呼ばれる、私のjavascriptのです:

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(); 
?> 

私は[参照]ボタンからファイル名を取得し、[OK]を、それを送信する必要がボタン、ここではPythonが呼び出されます。 input = "file" html、javascript、およびphpからデータを交換する正しい方法は何ですか?

+0

あなたはajax経由でファイルをアップロードする必要がありますか? – cmnardi

+0

@cmnardiいいえ、私はその入力ファイルでスクリプトを実行するためにファイル名が必要です – slash89mf

+0

OSからJSにファイル名を渡して、それをPHPスクリプトに渡してPythonスクリプトを呼び出しますか? – Gary

答えて

0

質問は...

完全には明らかではないが、私はここで仮定の多くを作ってるんだ。しかし、おそらくあなたはOSから選択されたファイルの名前を希望しています。 JSでは次のようにしてこれを行うことができます。

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

その後、あなたのAJAX呼び出しで、あなたのdataプロパティにfileName変数を追加します。 $_POST変数を経由して、あなたのPHPのアクセスこれで

data : {"filename":fileName},

そして。だから...

echo $_POST['filename'];

関連する問題