</div> <button id="take">拍照</button> <br /> <video id="v" style="width: 640px;height: 480px;"></video> <canvas id="canvas" style="display:none;"></canvas> <br /> <img src="http://placehold.it/640&text=Your%20image%20here%20..." id="photo" alt="photo"> </div> 前端用ajax将拍照的图片保存到url:http://localhost:5001/static/picture 上 怎么写
时间: 2023-10-07 21:14:18 浏览: 134
您需要使用 JavaScript 发送 AJAX 请求来将拍照的图片上传到指定的 URL。以下是一个示例代码:
```javascript
// 获取拍照按钮和视频元素
const takeBtn = document.getElementById('take');
const video = document.getElementById('v');
// 点击拍照按钮时触发
takeBtn.addEventListener('click', function() {
// 获取 canvas 元素和图像元素
const canvas = document.getElementById('canvas');
const photo = document.getElementById('photo');
// 将视频的帧画面绘制到 canvas 中
canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height);
// 将 canvas 转换为 base64 编码的图像数据
const imageData = canvas.toDataURL('image/jpeg');
// 发送 AJAX 请求上传图像数据
const xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:5001/static/picture');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
console.log('上传成功');
};
xhr.onerror = function() {
console.error('上传失败');
};
xhr.send('image=' + encodeURIComponent(imageData));
// 将图像元素的 src 属性设置为 base64 编码的图像数据
photo.setAttribute('src', imageData);
});
```
需要注意的是,以上代码中的 AJAX 请求使用 POST 方法上传图像数据。服务器端需要能够解析该请求,并将图像数据保存到指定的路径。另外,由于图像数据是以 base64 编码的形式上传的,因此需要在服务器端进行解码才能保存为图像文件。
阅读全文