我的网络应用程序目标是允许用户从相机上传图片并保证图片未从用户存档中选择。
以下代码工作正常,但用户可以选择“拍照”还是“选择图片”。是否有可能只强制“拍照”选项?
<input id="myFileInput" type="file" accept="image/*" capture="camera">
<script>
var myInput = document.getElementById('myFileInput');
function sendPic() {
var file = myInput.files[0];
// Send file here
}
myInput.addEventListener('change', sendPic, false);
</script>
还有其他想法吗?
答案 0 :(得分:3)
有一种方法可以通过navigator.getUserMedia()
API来做到这一点,但这有可能让人不赞成,并且在Safari和Webkit中也不支持。
使用navigator.mediaDevices.getUserMedia(myConstraints)
执行此操作有一个新标准,但它尚未广泛支持(在IE和Safari中不支持)。
在我们拥有一致实施的API之前,JavaScript无法实现这一目标。您需要的是一个原生应用,可以访问手机的功能,而JavaScript无法做到这一点。
答案 1 :(得分:-1)
自2012年以来,我们已经可以使用javascript从浏览器访问相机。请参阅caniuse getUserMedia():70%的浏览器都支持它。您是否只对移动设备感兴趣?然后百分比更高。
首先将该方法定义为navigator.getUserMedia(),但此后已移至MediaDevices.getUserMedia()。
使用getUserMedia()生成一张图片(而不是视频流) 按照Tutorial on mdn及其demo进行操作,它完全符合您的要求。