В настоящее время я реализую функцию снимка фотографии, чтобы позволить пользователям устанавливать фотографию своего профиля через веб-камеру. Для этого я использую jQuery Webcam Plugin .
Проблема заключается в том, что я хотел бы, чтобы пользователь щелкнул «Сфотографировать» и сохранил снимок на сервере в соответствующем месте, которое будет извлечено пользовательскими API изображений.
Кажется, это должно быть довольно легко сделать, но по какой-то причине у меня возникают проблемы. Когда моя кнопка нажата, захват фотографии происходит нормально, но сохранение не выполняется должным образом, так как я получаю сообщение об ошибке error: No save mode compiled in.
ПРИМЕЧАНИЕ. URL-адрес моего сохранения содержит переменную hash
, например ?hash=XYZ123
. Вот как изображение названо в файле PHP.
Я пытался удалить переменные hash
и ref
из URL, думая, что, возможно, это как-то привело к потере / игнорированию данных изображения, но это не дало никакой разницы. Кто-нибудь может увидеть что-то, что я сделал не так здесь? Я почти уверен, что следовал документации, а также нескольким другим постам, расположенным здесь на SO, , как этот .
Скриншот
HTML
<div id="camera"></div> <!-- WebCam Live Display -->
<div id="wcStatus"></div> <!-- Debug Text Display -->
<button onclick="showWebcam();">Use Webcam Instead</button>
<!--This button is normally hidden until camera initialized, but for sake for demo-->
<button onclick="saveWebCam('XYZ123', '66');">Take a picture!</button>
JS
function showWebcam(){
$("#camera").webcam({
width: 320,
height: 240,
mode: "save",
swffile: "/webcam/jscam_canvas_only.swf",
debug: function(type, string) {
$('#wcStatus').append(type + ": " + string + '<br /><br />');
}
});
}
function saveWebCam(hash, id){
var url = '/accountFiles/userImages/saveFromWebCam.php?hash=' + hash + '&ref=' + randomString(30);
$('#wcStatus').append('Capturing: ' + url + '<br /><br />');
webcam.capture();
webcam.save(url);
}
PHP (saveFromWebCam.php)
<?php
$destFile=$_REQUEST['hash'].'.jpg';
$str = file_get_contents('php://input');
file_put_contents($destFile, pack("H*", $str));
?>
Отладочный вывод
уведомить: камера запущена
Захват: /accountFiles/userImages/saveFromWebCam.php
уведомить: захват начался.
уведомить: захват завершен.
ошибка: режим сохранения не скомпилирован.