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;
}
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;
}
相关文章推荐
- mui调取手机摄像头,拍照,上传
- 手机端多图上传,调取摄像头和相册选择
- H5调用手机的摄像头拍照上传以及手机相册选取照片但不支持Android的分析
- Android之修改用户头像并上传服务器(实现手机拍照和SD卡选择上传)
- html5调用手机摄像头,实现拍照上传功能
- 手机拍照,浏览手机的文件夹,上传照片到服务器
- Android实现从手机相册上传头像以及拍照上传到服务器
- html5调用手机摄像头,实现拍照上传功能
- web手机页面调用摄像头拍照以及上传
- Android之修改用户头像并上传服务器(实现手机拍照和SD卡选择上传)
- Android之修改用户头像并上传服务器(实现手机拍照和SD卡选择上传)
- html5调用手机摄像头,实现拍照上传功能
- html5调用手机摄像头,实现拍照上传功能
- 网站建设中使用HTML5实现使用手机摄像头拍照上传的功能
- html5调用手机摄像头,实现拍照上传功能
- ionic 的项目实现从手机相册选取图片或拍照并上传至服务器
- html5调用手机摄像头,实现拍照上传功能
- 安卓实现拍照、在手机中选择图片通过webservice上传图片到服务器
- 微信浏览器内兼容android iOS调取手机摄像头进行拍照、打水印、压缩、预览
- H5调用手机的摄像头拍照上传以及手机相册选取照片