Я пытаюсь отправить файлы изображений с помощью phonegap's filetransfer.upload
, но возвращенный файл сломан и смотрит на logcat, что отправленный файл кажется слишком коротким.phonegap filetransfer.upload для отправки изображения на сервер 200 байт слишком короткое
Вот мой код для отправки файла
sendImageFile = function (imageURI, imageName) {
writelog("Sending image file", 1);
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
options.mimeType="image/jpeg";
var params = new Object();
params.value1 = "image name";
options.params = params;
options.chunkedMode = false;
var ft = new FileTransfer();
writelog("image uri length " + imageURI.length, 1);
writelog("Image options set up successfully", 1);
var ft = new FileTransfer();
ft.upload(imageURI, uploadurl, win, transFail, options);
}
и вот некоторые соответствующие строки из LogCat
01-07 12:27:30.743: D/FileTransfer(20066): Uploaded 114688 of 145432 bytes
01-07 12:27:31.571: D/FileTransfer(20066): got response from server
01-07 12:27:31.696: D/CordovaLog(20066): Code = 200
01-07 12:27:31.696: D/CordovaLog(20066): Response = 12099
01-07 12:27:31.696: D/CordovaLog(20066): Sent = 145236
Любая помощь будет высоко ценится.
Благодаря
Matt
Спасибо за помощь. Теперь он использует fileEntry.file. Глядя на данные связи, поступает правильное количество байтов, но изображение все еще повреждено. Это нормально на устройстве, поскольку оно отображается на странице после того, как изображение взято – maj21
Возможно, у вас есть проблема с кодом вашей серверной части, чем. Конечно, используйте console.log на fileObj.fullPath и посмотрите, что вы получаете. Если вы видите правильное имя файла (с расширением), ваш код на стороне клиента должен быть в порядке, поэтому на вашей стороне может возникнуть ошибка. –
@ user1487927 Это на самом деле не верно для кода FileTransfer. Я исправил его, чтобы он разрешил контент: uri's file paths в одном из релизов Cordova. –