Javascript 将cordove captureimage用于设备文件名时,mediafile中的本地映像文件路径不同
我已开始出现此问题,设备文件名以以下格式创建:Javascript 将cordove captureimage用于设备文件名时,mediafile中的本地映像文件路径不同,javascript,cordova,Javascript,Cordova,我已开始出现此问题,设备文件名以以下格式创建: ../DCIM/Camera/IMG_20170819_155509.jpg 但使用Cordova captureImage时的媒体文件数据返回为: ../DCIM/Camera/1503140105277.jpg 因此无法返回图像 代码如下: $('body').off('click', '#add-image-inspect-attr-list').on('click', '#add-image-inspect-attr-list', func
../DCIM/Camera/IMG_20170819_155509.jpg
但使用Cordova captureImage时的媒体文件数据返回为:
../DCIM/Camera/1503140105277.jpg
因此无法返回图像
代码如下:
$('body').off('click', '#add-image-inspect-attr-list').on('click', '#add-image-inspect-attr-list', function(event) {
var options = { limit: 1 };
navigator.device.capture.captureImage(inspectAttrPictureSuccess, inspectPictureError, options);
$(this).off();
});
function inspectAttrPictureSuccess(imageData) {
console.log(imageData);
var countOfImg = $('.image-display-inspect-attr-list').children().length;
var file = {
ContentType: "image/jpeg",
base64: imageData,
Data: imageData,
ID: countOfImg
};
var fileName = file.base64;
inspectShowAttrFile(fileName,0);
}
function inspectShowAttrFile(fileName, type) {
var countOfImg = $('.image-display-inspect-list').children().length;
$('.image-display-inspect-list').append('<img id="inspect-img-index-' + countOfImg + '" class="img-responsive img-thumbnail img-inspect" src="' + fileName[0].fullPath + '">');
}
$('body')。关闭('click','add image inspect attr list')。打开('click','add image inspect attr list',函数(事件){
var选项={limit:1};
navigator.device.capture.captureImage(InspectAttrPictureSucces、inspectPictureError、options);
$(this.off();
});
函数inspectAttrPictureSuccess(imageData){
控制台日志(imageData);
var countOfImg=$('.image display inspect attr list').children().length;
变量文件={
ContentType:“图像/jpeg”,
base64:imageData,
数据:imageData,
编号:countOfImg
};
var fileName=file.base64;
InspectShowAttr文件(文件名,0);
}
函数inspectShowAttrFile(文件名、类型){
var countOfImg=$('.image display inspect list').children().length;
$('.image display inspect list')。追加('');
}
该应用程序采用cordova 6.3.1构建,设备采用andriod 4.4.2
这在某些设备上有效,但在其他设备上无效为了解决这个问题,我必须检查最后添加到图像文件位置的文件。获取文件夹路径,获取添加的最新文件,然后使用新文件名和位置数据更新captureImage函数创建的图像数据:
function inspectAttrPictureSuccess(imageData) {
var deviceImageFolder = imageData[0].localURL.replace(imageData[0].name, '');
window.resolveLocalFileSystemURL(deviceImageFolder, function (dirEntry) {
var directoryReader = dirEntry.createReader();
directoryReader.readEntries(successfile, failfile);
}, function (err) {
var errToSave = err.message;
});
function successfile(entries) {
var latestimage = entries[entries.length - 1];
imageData[0].fullPath = latestimage.fullPath
imageData[0].localURL = latestimage.nativeURL
imageData[0].name = latestimage.name
var countOfImg = $('.image-display-inspect-attr-list').children().length;
var file = {
Filename: "inspect-attr-img-" + Math.random().toString(36).substring(2, 15) + ".jpg",
ContentType: "image/jpeg",
base64: imageData,
Data: imageData,
ID: countOfImg
};
inspectImageAttrFileSendAry.push(file);
inspectImageFileSendALLAry.push(file);
console.log(inspectImageAttrFileSendAry);
console.log(inspectImageFileSendALLAry);
var fileName = file.base64;
inspectShowAttrFile(fileName, 0);
}
function failfile(error) {
console.log("Failed to list directory contents: ", error);
}
}缺少断开的代码