2016-09-23 3 views
-1

나는 파일을 로컬로 선택하고 파이썬 스크립트에서 사용해야합니다.교환 데이터 PHP는

enter image description here

내가하는 PHP 함수를 호출하는 데 사용하는 내 아약스 스크립트에 그것을 가지고하기 위해 파일 이름을 얻을 수 없습니다. 내가 찾아보기 버튼에서 파일 이름을 받아 확인에 보낼 필요가

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

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

:

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

이 파이썬 스크립트를 호출하는 데 사용되는 PHP 스크립트입니다 : 이것은 온 클릭 확인 버튼을 통해이라고 내 자바 스크립트입니다 버튼을 클릭하면 파이썬이 호출됩니다. input = "file"html, javascript 및 php에서 데이터를 교환하는 올바른 방법은 무엇입니까?

+0

당신은 아약스를 통해 파일을 업로드해야합니까? – cmnardi

+0

@cmnardi 아니오, 해당 입력 파일로 스크립트를 실행하려면 파일명이 필요합니다. – slash89mf

+0

OS에서 파일 이름을 JS로 전달한 다음 PHP 스크립트에 전달하여 파이썬 스크립트를 호출합니까? – 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'];