webcam + java服务拍照上传实例

js引用:shutter.mp3 、webcam.js   、webcam.swf;  js引用下载

1、前端jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>Insert title here</title>  
    <script src="../resource/js/jquery/jquery-2.2.3.js" type="text/javascript"></script>
    <script type="text/javascript" src="ajaxfileupload.js"></script>
    
        <script src="webcam/webcam.js" type="text/javascript"></script>
    
<script type="text/javascript">  

//-----------------------------------------------------
$(function(){
	//加载拍照视频插件
    webcam.set_swf_url('webcam/webcam.swf');
    webcam.set_quality(100);
    webcam.set_shutter_sound(true, 'webcam/shutter.mp3');
    var cam = $("#webcam");
    cam.html(
        webcam.get_html(cam.width(), cam.height(), 1123, 794)
    );
    webcam.set_hook('onComplete', function (msg) {
        webcam.reset();
        msg = JSON.parse(msg);
        if (msg.success) {
           
        } else {
        	alert("图片初始失败!");
        }

    });
    
    $("#cupture-upload").click(function(dom){ 
    	debugger;
        var data = {};
        data.id=1;
        data.fileName="test";
        if (!data) return false;
        webcam.set_api_url("../upload/webCamUpload?id=" + data.id+"&fileName="+ encodeURI(data.fileName) + "");
    	webcam.snap();
    	
        
    });
});
</script>  
</head>  
<body>  
  
             <span>---------------------------------------------------------------------------</span></br>    
             
           <h1>拍照上传</h1></br> 
            <div><a id="cupture-upload" href="javascript:void(0)"  >扫描上传</a></div></br>
             <div style="width: 400px; height: 300px; text-align: center; border: 0px">
                        <div id="webcam" style="width: 100%; height: 100%; border: 0px solid red;"></div>
	                
              </div>
             
</body>  
</html>  

2、后端java:

  @RequestMapping(value = "webCamUpload", method = RequestMethod.POST)
	    public void webCamUpload(HttpServletRequest  request,HttpServletResponse response){
	    	 String Storage_PATH = request.getSession().getServletContext().getRealPath("blobform/imgs"); //文件存储位置
	    	InputStream inStream = null;
			try {
				inStream = request.getInputStream();
			} catch (IOException e) {
				e.printStackTrace();
			}
			/* ByteArrayOutputStream outSteam = new ByteArrayOutputStream();  
			    byte[] buffer = new byte[2048];  
			    int len = -1;  
			    try {
					while ((len = inStream.read(buffer)) != -1) {  
					    outSteam.write(buffer, 0, len);  
					}
					inStream.close();
					outSteam.close();
					outSteam.flush();
				} catch (IOException e) {
					e.printStackTrace();
				}  
			    byte[] bytes =  outSteam.toByteArray();  //图像内容
*/			    
			/*  //返回response展示   
			  response.setContentType("image/*");
				try {
					OutputStream stream = response.getOutputStream();
					stream.write(bytes);
					stream.flush();
					stream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}*/
			// 写出文件到路径下
			  BufferedOutputStream bos =null;  
	            BufferedInputStream bis=null;  
	            String fileName = request.getParameter("fileName");
	            try {  
	                        //读取文件  
	                        bis=new BufferedInputStream (inStream);  
	                        //指定存储的路径  
	                        bos=new BufferedOutputStream(new FileOutputStream(Storage_PATH+"/"+fileName+".jpg"));  
	                        int len=0;  
	                        byte[] buffer=new byte[10240];  
	                        while((len=bis.read(buffer))!=-1){  
	                            bos.write(buffer, 0, len);  
	                        }  
	                        //刷新此缓冲的输出流,保证数据全部都能写出  
	                        bos.flush();  
	                bis.close();  
	                bos.close();  
	             
	            } catch (Exception e) {        
	                e.printStackTrace();        
	              
	            }  
			
	    }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值