이번 포스트에서는 Axios를 사용하여 클라이언트 측에서 캡쳐된 영상을 서버로 전송하는 방법에 대해 알아보겠습니다.
1. HTML5 Canvas를 사용하여 영상 캡쳐하기
먼저, 클라이언트 측에서 영상을 캡쳐하는 방법으로 HTML5 Canvas를 사용할 수 있습니다. Canvas는 웹 페이지에 그래픽을 그리기 위해 사용되는 HTML 요소로, 이를 활용하여 화면 상의 영상을 캡쳐할 수 있습니다. 다음은 간단한 예제 코드입니다.
const canvas = document.createElement('canvas');
const video = document.querySelector('video');
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
const ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
const capturedImage = canvas.toDataURL('image/png');
위 코드는 <video>
요소에서 영상을 가져와 Canvas에 그린 후, toDataURL()
메서드를 사용하여 base64로 인코딩된 이미지를 얻습니다. 이제 이 이미지를 서버로 전송하기 위해 Axios를 활용할 수 있습니다.
2. Axios를 사용하여 서버로 이미지 전송하기
Axios는 클라이언트 측에서 서버로 데이터를 HTTP 요청으로 전송하는 데 사용되는 인기 있는 JavaScript 라이브러리입니다. 이를 사용하여 이미지 데이터를 서버로 전송할 수 있습니다. 아래는 예제 코드입니다.
import axios from 'axios';
const uploadImageToServer = (imageData) => {
axios.post('/api/upload', {
image: imageData,
})
.then((response) => {
console.log('이미지 업로드 성공');
})
.catch((error) => {
console.error('이미지 업로드 실패:', error);
});
};
uploadImageToServer(capturedImage);
위 코드에서는 axios.post()
를 사용하여 POST 요청을 보냅니다. 요청의 목적지는 /api/upload
로 설정되어 있으며, imageData
는 서버로 전송할 이미지 데이터를 담고 있습니다. 성공적인 응답을 받으면 '이미지 업로드 성공'
이 출력되고, 실패할 경우 '이미지 업로드 실패:'
와 함께 에러 메시지가 출력됩니다.
Axios를 사용하여 클라이언트 측에서 캡쳐된 영상을 서버로 전송하는 방법을 알아보았습니다. 이를 활용하면 웹 애플리케이션에서 사용자의 영상 데이터를 효과적으로 처리할 수 있습니다. 부가적으로, 클라이언트 측에서 영상 캡쳐 시에는 사용자의 개인정보 보호를 위해 적절한 제약 조건을 설정하는 것을 잊지 마세요.
HTML Canvas - MDN Web Docs Axios - GitHub
#axios #javascript