Веб-камера jQuery: режим сохранения приводит к: '' ошибка: режим сохранения не скомпилирован. " - PullRequest
3 голосов
/ 27 сентября 2011

В настоящее время я реализую функцию снимка фотографии, чтобы позволить пользователям устанавливать фотографию своего профиля через веб-камеру. Для этого я использую jQuery Webcam Plugin .

Проблема заключается в том, что я хотел бы, чтобы пользователь щелкнул «Сфотографировать» и сохранил снимок на сервере в соответствующем месте, которое будет извлечено пользовательскими API изображений.

Кажется, это должно быть довольно легко сделать, но по какой-то причине у меня возникают проблемы. Когда моя кнопка нажата, захват фотографии происходит нормально, но сохранение не выполняется должным образом, так как я получаю сообщение об ошибке error: No save mode compiled in.

ПРИМЕЧАНИЕ. URL-адрес моего сохранения содержит переменную hash, например ?hash=XYZ123. Вот как изображение названо в файле PHP.

Я пытался удалить переменные hash и ref из URL, думая, что, возможно, это как-то привело к потере / игнорированию данных изображения, но это не дало никакой разницы. Кто-нибудь может увидеть что-то, что я сделал не так здесь? Я почти уверен, что следовал документации, а также нескольким другим постам, расположенным здесь на SO, , как этот .

Скриншот

enter image description here

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

уведомить: захват начался.

уведомить: захват завершен.

ошибка: режим сохранения не скомпилирован.

Ответы [ 2 ]

4 голосов
/ 28 ноября 2011

Это ваша ошибка:

swffile: "/webcam/jscam_canvas_only.swf",

должно быть:

swffile: "js/jscam.swf",

цитата из веб-страницы плагина :

Указывает на файл swf фильма Flash, который предоставляет API веб-камеры. В архиве загрузок есть два swf-файла: jscam.swf, который предоставляет полный API, и jscam_canvas_only.swf, которые не имеют встроенной библиотеки JPEG (я встроил скорректированный JPGEncoder из corelib AS 3). Таким образом, размер файла составляет всего одну треть от исходного.

2 голосов
/ 28 сентября 2011

Как это часто бывает, временные ограничения вынуждают меня искать альтернативы этому проекту.Я решил, как и многие другие пользователи Интернета, использовать jpegCam Project .Я получил это и работает примерно через 15 минут.ПРОСТО!Единственная причина, по которой я не удаляю этот вопрос - это для будущих искателей таких знаний.

...