一、调用相册、相机、文件系统
require(
"cordova!cordova-plugin-camera");
require(
"cordova!cordova-plugin-file-transfer");
navigator.camera.getPicture(onLoadImageSuccess, onLoadImageFail, {
destinationType : navigator.camera.DestinationType.FILE_URI,
quality :
100,
targetWidth :
200,
targetHeight :
200,
saveToPhotoAlbum :
true,
encodingType:Camera.EncodingType.JPEG,
allowEdit :
false,
cameraDirection:
0,
sourceType : navigator.camera.PictureSourceType.PHOTOLIBRARY ,
mediaType:
0,
});
function onLoadImageSuccess(imageData) {
console.log(
"调用相册返回的数据:"+imageData);
var options =
new FileUploadOptions();
options.fileKey =
"file";
options.fileName = imageData.substr(imageData.lastIndexOf(
'/'),imageData.lastIndexOf(
'?')-imageData.lastIndexOf(
'/'));
options.mimeType =
"image/jpeg";
var ft =
new FileTransfer();
ft.upload(imageData,
encodeURI(
'http://192.168.0.4:8080/baas/mychat/messageTransform/uploadPicForUri'),
function(success){},
function(error){},
options);
}
function onLoadImageFail(error) {
console.log(
"调用相册失败的消息:"+error);
}
public static JSONObject uploadPicForUri(JSONObject params,ActionContext context) {
System.out.println(
"--------------上传------------------");
HttpServletRequest request=(HttpServletRequest) context.get(ActionContext.REQUEST);
String contentType = request.getContentType();
System.out.println(
"文件类型:"+contentType);
Map<
String,
String> param =
new HashMap<
String,
String>();
List<FileItem> items = parseMultipartRequest(request);
System.out.println(
"FILEITEMSIZE = " + items.size());
FileItem fileItem =
null;
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
param.put(name, value);
System.out.println(
"name:"+name+
",value:"+value);
}
else {
fileItem = item;
System.out.println(fileItem);
}
}
return null ;
}
public static List<FileItem> parseMultipartRequest(HttpServletRequest request) throws FileUploadException{
DiskFileItemFactory factory =
new DiskFileItemFactory();
ServletContext servletContext = request.getSession().getServletContext();
File repository = (File) servletContext.getAttribute(
"javax.servlet.context.tempdir");
factory.setRepository(repository);
ServletFileUpload upload =
new ServletFileUpload(factory);
@SuppressWarnings(
"unchecked")
List<FileItem> items = upload.parseRequest(request);
return items;
}
二、录音、录视频
document.addEventListener(
"deviceready", onDeviceReady,
false);
function onDeviceReady() {
navigator.device.capture.captureAudio(
function(){console.log(
"success");},
function(){console.log(
"error");},{limit:
1});
}