【发布时间】:2011-09-27 18:52:46
【问题描述】:
我目前正在实现照片快照功能,以允许用户通过网络摄像头设置他们的个人资料照片。为此,我使用jQuery Webcam Plugin。
问题出现在我想让用户单击“拍照”并将快照保存到服务器的适当位置以供用户图像 API 检索。
看起来这应该很容易做到,但由于某种原因我遇到了问题。当我按下按钮时,照片拍摄正常,但由于收到错误error: No save mode compiled in.
注意:我的保存 URL 包含一个 hash 变量,例如 ?hash=XYZ123。这就是图像在 PHP 文件中的命名方式。
我试图从 url 中删除 hash 和 ref 变量,认为这可能会导致图像数据以某种方式丢失/忽略,但这并没有产生任何区别。谁能看到我在这里做错了什么?我很确定我遵循了文档以及位于 SO 上的其他几篇帖子,like this one。
截图
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
通知:捕获开始。
通知:捕获完成。
错误:没有编译保存模式。
【问题讨论】:
-
您确定您使用的是最新版本的插件吗?正如我在 github 上看到的,您提到的错误消息可能来自 actionscript 文件,但该行已被推荐。如果检查失败,请尝试检查 jquerycam 插件 github.com/infusion/jQuery-webcam/network/members 的其他分支(例如 lalop 或 nedforce 分支)。
-
感谢您的回复。我肯定下载了最新版本(不止一次)。