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);
}

}

缺少断开的代码