H5访问手机相册与照相上传至服务器
2017-01-16 19:59
225 查看
html 页面:
java 后台
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #imageList li{ list-style: none; float: left; padding-left: 10px; } #imageList li img{ display: block; width: 0.933rem; height: 0.933rem; vertical-align: top; } </style> <script src="js/jquery-1.10.2.min.js"></script> </head> <body> <form id="form" enctype="multipart/form-data" method="post"> <div class="e-upload"> <ul class="e-upload-ul" id="imageList"> </ul> <a class="e-upLoad-a"><input type="file" name="files[]" accept="image/*;" capture="camera" class="imgUpload"></a> <div class="uploadTxt">共<span id="imageCount">0</span>张,还能上传<span id="limitCount">3</span>张</div> </div> <div class="btnBar"> <button class="e-btn-red" id="btn-submit" type="button">提 交</button> </div> </form> <!-- 查看大图 --> <div class="imgPreview" style="display: none"> <img src=""> </div> <script> $(function(){ $(".imgUpload").change( function (e) { uploadChange(e,this); }); $(".imgPreview").click(function(){ $(this).hide(); }); }) function uploadChange(e,target){ if(e.target.files.length==1){ $(target).parent().hide(); $(target).parent().after("<a class='e-upLoad-a'><input type='file' name='files[]' accept='image/*;' capture='camera' class='imgUpload'></a>"); $(".e-upLoad-a:last").find('input').change( function (e) { uploadChange(e,this); }); } for (var i = 0; i < e.target.files.length; i++) { var file = e.target.files.item(i); var fileSize=file.size; if(fileSize>5242880){ alert("上传图片大小不能超过5MB"); 4000 $(".e-upload").children('a').eq(-2).remove(); continue; } //允许文件MIME类型 也可以在input标签中指定accept属性 //console.log(/^image\/.*$/i.test(file.type)); console.log(e); if (!(/^image\/.*$/i.test(file.type))) { alert("请上传图片"); $(".e-upload").children('a').eq(-2).remove(); continue; //不是图片 就跳出这一次循环 } var len = e.target.files.length; if (len > 3) { alert("最多只能上传3张图片"); break; } else { var imageOriginalCount = $("#imageCount").text(); var imageNewCount = len + parseInt(imageOriginalCount); if (imageNewCount > 3) { $(".e-upload").children('a').eq(3).remove(); showMsgTip("最多只能上传3张图片"); break; } else { var imageCount = $("#imageCount").text(imageNewCount); var currentCount = $("#limitCount").text(); $("#limitCount").text(currentCount - len); console.log(e.target.files); for (var i = 0; i < len; i++) { showimg(e.target.files[i]); } } } } } function showimg(img){ var a = new FileReader(); a.readAsDataURL(img); a.onload=function(){ var img = new Image(); img.src=a.result; img.onclick=function(){ var imgSrc = $(this).attr('src'); $('.imgPreview').show().find('img').attr('src',imgSrc); } var imgLi = document.createElement("li"); var imgA=document.createElement("a"); imgA.onclick=function(){ var index=$(this).index(); $(".e-upload").children('a').eq(index).remove(); var imageCount = $("#imageCount").text(); var limitCount = $("#limitCount").text(); $("#imageCount").text(parseInt(imageCount)-1); $("#limitCount").text(parseInt(limitCount)+1); $(this).parent().remove(); } imgA.setAttribute("class",'close'); imgA.setAttribute("href",'javascript:;'); imgLi.appendChild(imgA); imgLi.appendChild(img); document.getElementById('imageList').appendChild(imgLi); } } </script> </body> </html>
java 后台
@RequestMapping("/commit") @ResponseBody public CsJmResult commit(DefaultMultipartHttpServletRequest multipartRequest, HttpServletResponse response){ CsJmResult csJmResult = null; List<String> picUrls=new ArrayList<String>(); response.setContentType("text/text;charset=utf-8"); try{ if (multipartRequest != null) { Iterator<String> iterator = multipartRequest.getFileNames(); while (iterator.hasNext()) { List<MultipartFile> multipartFileList= multipartRequest.getFiles(iterator.next()); for(MultipartFile multipartFile:multipartFileList){ if(multipartFile.getSize()==0){ continue; } String fileName = multipartFile.getOriginalFilename(); InputStream is = multipartFile.getInputStream(); String objectKey = JFSObjectKeyUtil.generateDirObjectKey(IMAGE_SHORT_PATH, fileName); // 上传至服务器 JFSCommand.uploadFile(JFSConstant.JFS_BUCKET_NAME, is, objectKey); String imgUrl = JFSObjectKeyUtil.getObjectURL(objectKey); picUrls.add(imgUrl); logger.info("imageUrl:" + imgUrl); } } } csJmResult = jmFeedbackService.commitFeedback(customeMobile,customeName,billType,billCode,questionDesc,createPin,createName,picUrls); }catch (Throwable throwable){ Profiler.functionError(umpInfo); logger.error("提交反馈失败_FeedbackController.commit__Error", throwable); }finally{ Profiler.registerInfoEnd(umpInfo); } return csJmResult; }
相关文章推荐
- 调用手机照相和相册来显示个人信心头像并上传至服务器
- ionic 的项目实现从手机相册选取图片或拍照并上传至服务器
- Android实现从手机相册上传头像以及拍照上传到服务器
- H5调用手机的摄像头拍照上传以及手机相册选取照片
- 调用系统相册上传图片到服务器--OPPO等部分手机上出现短暂的显示桌面问题
- ionic3从手机相册选择多张照片预览并上传到服务器
- h5 app开发使用cordova调用相册、相机、文件系统或录音录视频,并上传到服务器
- Android中照相,从相册选取照片,压缩,保存到手机内存,展示到界面,点击放大,上传。(含demo)
- Android开发中调用系统相册上传图片到服务器OPPO等部分手机上出现短暂的显示桌面问题的解决方法
- H5调用手机的摄像头拍照上传以及手机相册选取照片但不支持Android的分析
- H5+获取手机拍照和相册 vue做数据 base64上传
- H5技术完美实现调用手机摄像头、相册。图片上传base64,图片压缩、预览、删除以及图片旋转90度的处理--demo。
- 使用FileZilla搭建可外网访问及手机相册同步服务器
- Android中照相,从相册选取照片,压缩,保存到手机内存,展示到界面,点击放大,上传。(含demo)
- 安卓 相机或相册图片上传至手机界面并显示 最后上传至服务器(界面xml布局代码前一个文章有)
- 手机系统自带相机相册上传服务器
- ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结
- ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结
- android上传手机图片至服务器,服务器进行保存
- ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结