2016-07-04 7 views
0

ここに私の最初の投稿があります。javascriptでサーバーにデータを送信する方法

2年生の大学生、1年間のパイソン訓練を受けました。 2週間前に初めてjavascriptを学習し始めました。大学前にコーディングする経験はありません。

ウェブカメラを最初にストリームしたWebページを作成した後、ボタンをクリックすると、スナップショットが作成され、キャンバスの使用によってWebページに表示されます。

私がしたいこと: 別のボタンを使用してキャンバスイメージをサーバーに送信します。 navigator.getUserMedia(使用し

  1. )ウェブカメラのストリーミングのために:私はが行っている

  2. canvas.toDataURL()を使用してキャンバスイメージをbase64に変換しました。 「POST」リクエストを行うためのチュートリアルを見つけるためにオンライングーグルしようとしました

  3. が、私は それを回避する方法がわからないです、簡単に言えば、私は、サーバーにデータを送信するコードを書く方法を 理解していません。

  4. jQueryを試してみましたが、まだここではかなり混乱しています。


$(document).ready(function(){ 
    $("#testbutton").click(function(){ 
     $.get("http://localhost:8080", 
     url, 
     function(){ 
      alert("OK"); 
     }); 
    }); 
}); 
  • 私が送信する前にbase64に変換する必要がありますか?
  • どのように送信しますか?
  • MDNで を読んだところ、navigator.getUserMediaは廃止されました。どのように使用しますか? MediaDevices.getUserMedia()?

私のコードスニペットのいくつか。

if(navigator.getUserMedia) { // Standard 
     navigator.getUserMedia(videoObj, function(stream) { 
      video.src = stream; 
      video.play(); 
     }, errBack); 
    } else if(navigator.webkitGetUserMedia) { // WebKit-prefixed 
     navigator.webkitGetUserMedia(videoObj, function(stream){ 
      video.src = window.webkitURL.createObjectURL(stream); 
      video.play(); 
     }, errBack); 
    } 
    else if(navigator.mozGetUserMedia) { // Firefox-prefixed 
     navigator.mozGetUserMedia(videoObj, function(stream){ 
      video.src = window.URL.createObjectURL(stream); 
      video.play(); 
     }, errBack); 
    } 

チュートリアルは続く:

https://davidwalsh.name/browser-camera

+2

おそらくあなたはAJAXリクエストを送ろうとしています –

+0

ここでajaxの例を見てくださいhttp://api.jquery.com/jquery.ajax/ –

答えて

2

あなたは、サーバーにデータを送信するためにAJAXを使用する必要があります。このような

何か:

jQuery.ajax({ 
    method: "POST", 
    url: "save.php", 
    data: { image: canvasToDataURLString } 
}) 

その後、あなたは画像を保存するために、いくつかのサーバー側のコードが必要になります。今、あなたはあなたのPHPスクリプトに次の'image.png'を画像と呼ばれている必要がありますHow to save a PNG image server-side, from a base64 data string

$data = $_POST['image']; 

list($type, $data) = explode(';', $data); 
list(, $data)  = explode(',', $data); 
$data = base64_decode($data); 

file_put_contents('image.png', $data); 

:ここでは、この答えから修正PHPのバージョンがあります。

+0

サーバーの部分については、私はsimplehttpserverモジュールをpythonで使っています。コードの一部? ここに私のコードスニペットがあります。 URL値下SocketServer輸入TCPServer' –

+0

からSimpleHTTPServer輸入SimpleHTTPRequestHandler から '、私は単純には "localhost:ポート" と "save.php" を置き換えるか、私はローカルホストを使用していますと言いますか? –

+0

'url'は、実行中のスクリプトに対して意図したターゲットを見つけます。保存するスクリプトが実行中のスクリプトの横にある場合は、スクリプト名を挿入するだけです。サブフォルダに移動する必要がある場合は 'foldername/scriptname'と書くだけです。レベルを上げる必要がある場合は、 '../ scriptname'を使います。 –

関連する問題