我正在尝试使用下面的代码上传从图库中获取的图像。
//imageUri is a uri which is gotten by Phonegap camera API
//(use option Camera.PictureSourceType.PHOTOLIBRARY&&Camera.DestinationType.FILE_URI)
var imageUri = getImageUri();
//handlerUri is a uri to upload the image
var handlerUri = getHandlerUri();
window.resolveLocalFileSystemURI(imageUri, function(fileEntry) {
fileEntry.file(function(fileObj) {
var fileName = fileEntry.name;
var options = new FileUploadOptions();
options.headers = {
Connection: "close"
};
options.fileKey = "uploadfiles";
if (fileName.indexOf('/') > -1) {
options.fileName = fileName.substr(fileName.lastIndexOf('/') + 1);
} else {
options.fileName = fileName;
}
options.mimeType = "image/jpeg";
options.chunkedMode = false;
options.params = params;
var ft = new FileTransfer();
imageUri = fileEntry.nativeURL;
ft.upload(imageUri, handlerUri,
function(r) {
if (r.response == "success") {
} else {
}
},
function(error) {},
options, true);
}, function(error) {
});
}, function(error) {
});
对于Android 4.4以下的设备,该应用效果很好。但是,在Android 4.4 KitKat中,相同的代码不再起作用。
注意:长时间上传后,我在LogCat中只收到了代码3错误。有人说代码3是连接错误,但它不应该是我的条件,因为相同的代码在Android 4.4下运行良好。
有人可以帮忙吗?
感谢。
答案 0 :(得分:1)
我终于自己解决了这个问题。似乎错误的文件名是根。 当我使用旧代码
获取文件名时var fileName = fileEntry.name;
文件名是7962,这是不正确的。
我使用下面的代码来解决此问题:
var fileName = fileEntry.nativeURL.substr(fileEntry.nativeURL.lastIndexOf('/') + 1);
感谢所有人。