您的位置:首页 > 产品设计 > UI/UE

mui调取手机摄像头拍照,上传到服务器

2018-03-31 20:11 453 查看
js代码:
var config = {
       //api: "http://192.168.2.195/",
         api: "http://192.168.2.217/",
         maxupload: 2 * 1024 * 1024
           };
function openCamera() {
var cmr = plus.camera.getCamera();
cmr.captureImage(function(p) {
plus.io.resolveLocalFileSystemURL(p, function(entry) {
// plus.nativeUI.showWaiting("人脸识别中", ""); //显示系统loading框
plus.zip.compressImage({
src: entry.toLocalURL(),
dst: '_doc/camera/' + p,
overwrite: true,
format: "jpg",
width: "30%"
}, function(zip) {
if (zip.size > (1 * 1024 * 1024)) {
return mui.toast('文件超大,请调整相机重新拍照');
}
file_url = zip.target;
alert(file_url);

// plus.nativeUI.showWaiting("正在上传中……");
var task = plus.uploader.createUpload(
config.api + "/attach/upload", {
method: "POST",
blocksize: 20 * 1024,
priority: 100
},
function(r, status) {
alert(JSON.st
4000
ringify(r))
plus.nativeUI.closeWaiting();
onresult(JSON.parse(r.responseText))
});
var _data = {
userId: localStorage.getItem("userId"),
corpId: localStorage.getItem("corpId"),
};
for (var i in _data) {
task.addData(i, _data[i])
}

task.setRequestHeader("X-Request-Platform", "app")
if (null != localStorage.getItem("token")) {
task.setRequestHeader("X-Request-Token", localStorage.getItem("token"))
}
if (typeof file_url.files == "object") {
var files = file_url.files;
for (var i in files) {
task.addFile(files[i], {
key: files[i]
})
}
} else {

task.addFile(file_url, {
key: file_url
})
}

task.start();
}, function(zipe) {
plus.nativeUI.closeWaiting();
mui.toast('压缩失败!')
});
}, function(e) {
plus.nativeUI.closeWaiting(); //获取图片失败,loading框取消
mui.toast('失败:' + e.message); //打印失败原因,或给出错误提示
});
}, function(e) {
plus.nativeUI.closeWaiting(); //开启照相机失败,关闭loading框
mui.toast('失败:' + e.message); //打印错误原因,给出错提示
}, {
filename: '_doc/camera/', //图片名字
index: 1 //摄像头id
});
}

后端java:
//control 层
    @RequestMapping("/upload")
    public Object upload(HttpServletRequest request,HttpServletResponse resp,HttpSession session) throws IOException, Exception  {
   
    List<Object> list= new ArrayList<Object>();
    if(StringUtils.isNotBlank(request.getParameter("base64data"))){
          Object r = attachService.upload(request.getParameter("base64data"));
          list.add(r);
         }else{
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
             
             Map<String, MultipartFile> o = multipartRequest.getFileMap();
             if(o.size()>0){
              MultipartFile multipartFile=null;;
      for (String k : o.keySet()) {
     
      multipartFile = o.get(k);
                  Object r = attachService.upload(multipartFile);
                  list.add(r);
      }
             } 
         }       
        if(BrowserUtil.IE6.equals(BrowserUtil.getBrowserName(request))
        ||
        BrowserUtil.IE7.equals(BrowserUtil.getBrowserName(request))
        ||
        BrowserUtil.IE8.equals(BrowserUtil.getBrowserName(request))
        ){
        resp.setContentType("text/html;charset=UTF-8"); 
        resp.getWriter().write(JSON.toJSONString(list));
                return null;
        }else{
        resp.setContentType("application/json;charset=UTF-8"); 
        return new ResultOk(list);
        }
        }

//service层
public Object upload(MultipartFile multipartFile) throws IOException, Exception {
if("alioss".equals(attachConfig.getStrategy())){
return uploadtoalioss(multipartFile);
}else{
return uploadtolocal(multipartFile);
}
}

public Object uploadtolocal(MultipartFile multipartFile) throws IOException, Exception {

   String originalFilename =multipartFile.getOriginalFilename().toLowerCase();
   String filename = MD5Util.encode(""+System.currentTimeMillis());
   String suffix = ".jpg";
   
   String str = attachConfig.getDirstring();
  String dir1 = ""+str.charAt((int) (Math.random()*15));
  String dir2 = ""+str.charAt((int) (Math.random()*15));
 
   if(originalFilename.endsWith(".jpg") || originalFilename.endsWith(".jpeg")){
    suffix = ".jpg";
   }else if(originalFilename.endsWith(".png")){
    suffix = ".png";
   }else if(originalFilename.endsWith(".bmp")){
    suffix = ".bmp";
   }else if(originalFilename.endsWith(".gif")){
    suffix = ".gif";
   }else if(originalFilename.endsWith(".mp3")){
    suffix = ".mp3";
    dir1 = "x";
   }else if(originalFilename.endsWith(".mp4")){
    suffix = ".mp4";
    dir1 = "y";
   }else if(originalFilename.endsWith(".rar")){
    suffix = ".rar";
    dir1 = "z";
   }else if(originalFilename.endsWith(".zip")){
    suffix = ".zip";
    dir1 = "z";
   }else if(originalFilename.endsWith(".xls")){
    suffix = ".xls";
    dir1 = "z";
   
   }else if(originalFilename.endsWith(".doc")){
    suffix = ".doc";
    dir1 = "z";
   
   }else if(originalFilename.endsWith(".docx")){
    suffix = ".docx";
    dir1 = "z";
   
   }else if(originalFilename.endsWith(".xlsx")){
    suffix = ".xlsx";
    dir1 = "z";
   
   }else{
    throw new Exception("不支持的文件类型");
   }
   String level = attachConfig.getLevel().toString();
   
 
  String key="";
  String fileid = "";
 
   if("2".equals(level)){
    fileid = "2" + dir1 + dir2 + filename + suffix;
    key =  dir1 + "/" +dir2 + "/2" + dir1 + dir2 + filename + suffix;
   }else{
    fileid = "1" + dir1  + filename + suffix;
   
    key =  dir1 + "/1" + dir1 + filename + suffix;
   }
  
   FileUtil.makeDirectory(attachConfig.getLocalroot() +attachConfig.getLocalctxpath()+ "/" + key); 
   File saveFile = new File(attachConfig.getLocalroot() +attachConfig.getLocalctxpath()+ "/" + key);
   multipartFile.transferTo(saveFile);
   Map<String,Object> map = new HashMap<String,Object>();
   map.put("fileid",fileid);
   map.put("fileurl","http://"+attachConfig.getLocaldomain()+attachConfig.getLocalctxpath()+"/"+key);
   
map.put("errcode",0);
   map.put("url","http://"+attachConfig.getLocaldomain()+attachConfig.getLocalctxpath()+"/"+key);
   
map.put("error",0);
   map.put("errmsg","你的文件已经上传成功了");
   return map;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: