【发布时间】:2019-04-23 11:32:38
【问题描述】:
我正在开发一个 Django 应用程序,用户可以在其中单击一个按钮来启动网络摄像头。网络摄像头启动后,用户可以将图像保存到 Django 服务器上。现在我的代码可以用 javascript 拍照。但我一直试图将图像保存到 django 服务器上。这是我目前的代码
html 模板
<center>
<button type="button" name="button" class='btn btn-outline-dark btn-lg' id='start'>Start Video Capture</button>
<div class="container-fluid mt-2">
<video id="video" width="640" height="480" autoplay></video><br>
<button type="button" data-toggle="modal" data-target="#image_model" class="btn btn-lg btn-dark" id="snap">Snap Photo</button>
</div>
</center>
<form action="{% url 'img_submit' %}" method="post" class="image_submit_form">
{% csrf_token %}
<input type="submit" value="Use Image" class="btn btn-primary" id="use_image">
</form>
javascript
// Grab elements, create settings, etc.
var video = document.getElementById('video');
// Elements for taking the snapshot
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
document.getElementById('start').addEventListener("click", function() {
// Get access to the camera!
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({
video: true
}).then(function(stream) {
//video.src = window.URL.createObjectURL(stream);
video.srcObject = stream;
video.play();
});
}
$('#snap').fadeIn();
// Trigger photo take
document.getElementById("snap").addEventListener("click", function() {
context.drawImage(video, 0, 0, 640, 480);
var url = canvas.toDataURL();
$("#use_image").click(function() {
let $form = $(".image_submit_form");
let form_data = new FormData($form[0]);
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
dataType: "json",
data: {
url: url,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
success: function(json) {
alert("Successfully sent the URL to Django");
},
error: function(xhr, errmsg, err) {
alert("Could not send URL to Django. Error: " + xhr.status + ": " + xhr.responseText);
}
});
});
});
});
我正在尝试使用 ajax 将画布图像发送到 django 视图,在那里我可以使用 python 将图像保存到服务器。
到目前为止,这是我的 python 代码。我正在尝试检查我是否获得了要保存的正确数据
django 视图
def img_submit(request):
url = request.POST.get('url')
return HttpResponse(url)
但这没有返回。如何通过python访问图像,然后如何保存图像?
谢谢
【问题讨论】:
标签: javascript python django