前提・実現したいこと
●前提
・webアプリケーションを作っています
●実現したいこと
①ブラウザ上でwebカメラを起動
②撮影ボタンを押すとwebカメラの画像がcanvasに格納
③アップロードボタンを押すと、サーバー上の指定のディレクトリに画像ファイルを保存
発生している問題・エラーメッセージ
①、②はできましたが、③のやり方が分かりません。
試したこと
・javascriptでcanvasを画像ファイルに変換(toDataURLを使った)
これ以降どのように保存をしていいか色々調べてもピンときません。
画像ファイルに本当に変換できているのかもわかりません。
###現在のコード
HTML
1<div class="picturePreview"> 2 <div id="videoPreview"></div> 3 <div id="canvasPreview"></div> 4 <form> 5 <button type="button" id="shutter" class="video-preview-btn" onclick="Snap();">撮影</button> 6 </form> 7 <form> 8 <button type="button" id="save-picture" class="video-preview-btn" onclick="Save();">保存</button> 9 </form> 10 </div>
javascript
1 2 const cameraSize = { w: 600, h: 400 }; 3 const resolution = { w: 1080, h: 720 }; 4 let video; 5 let media; 6 7 // video要素をつくる 8 video = document.createElement('video'); 9 video.id = 'video'; 10 video.width = cameraSize.w; 11 video.height = cameraSize.h; 12 video.autoplay = true; 13 document.getElementById('videoPreview').appendChild(video); 14 15 // video要素にWebカメラの映像を表示させる 16 media = navigator.mediaDevices.getUserMedia({ 17 audio: false, 18 video: { 19 width: { ideal: resolution.w }, 20 height: { ideal: resolution.h } 21 } 22 }).then(function(stream) { 23 video.srcObject = stream; 24 }).catch(function (error) { 25 console.error('mediaDevice.getUserMedia() error:', error); 26 return; 27 }); 28} 29 30function Snap(){ 31 32 const canvasSize = { w: 600, h: 400 }; 33 let canvas; 34 let canvasCtx; 35 var retake; 36 37 // canvas要素をつくる 38 canvas = document.createElement('canvas'); 39 canvas.id = 'canvas'; 40 canvas.width = canvasSize.w; 41 canvas.height = canvasSize.h; 42 document.getElementById('canvasPreview').appendChild(canvas); 43 44 // コンテキストを取得する 45 canvasCtx = canvas.getContext('2d'); 46 47 canvasCtx.drawImage(video, 0, 0, canvas.width, canvas.height); 48 49 const tracks = document.getElementById('video').srcObject.getTracks(); 50 tracks.forEach(track => { 51 track.stop(); 52 }); 53 54} 55 56function Save(){ 57 58 const picture = canvas.toDataURL("image/png"); 59 60 //色々調べてここで止まっています。 61
①pictureをサーバー側に送信する方法が分かりません。
補足情報(FW/ツールのバージョンなど)
フロント:HTML,CSS,JavaScript,jQuery
サーバー:C#
DB:SQL Server
説明不足な部分が多々あるかと思いますが、そういった部分も含めてご指摘いただけると嬉しいです。
宜しくお願いします。








回答2件
あなたの回答
tips
プレビュー