2013-09-17 4 views
1

Я загрузки несколько частей мима кодированного изображения для прошивки вроде этого:PhoneGap 3,0 FileTransfer загрузить не работает

var ft = new FileTransfer(); 
url = encodeURI(url); 

ft.download(url, path, function(fileEntry) {}, function(err) {}); 

с

path = "file://localhost/var/mobile/Applications/D702F059-A29F-4FF4-A165-D4A903DEDE7D/Documents/captured/2419747919.jpeg" 

и получить следующее сообщение об ошибке:

body: "Could not create path to save downloaded file: The operation couldn’t be completed. (Cocoa error 513.)" 
code: 1 (file not found) 
http status: 200 

Это указывает на неверный путь, но я не вижу в этом ничего плохого. Я получаю следующий путь:

path = fs.root.toURL(); 

Все остальное прекрасно работает, и файлы могут храниться точно таким же путем, фотографируя. Просто не через загрузку FileTransfer.

Любые идеи или ошибка в Phonegap 3.0? Благодаря!

UPDATE - Обход

FileWriter работает и теперь даже экономит на сгустки прошивки и Android. Пример кода:

var xhr = new XMLHttpRequest(); 

xhr.open('GET', url, true); 
xhr.responseType = 'arraybuffer'; 

xhr.onload = function() { 
    var blob = new Blob([xhr.response], {type: 'image/jpeg'}); 

    // save via FileWriter 
}; 

xhr.send(); 
+0

могли бы вы предоставить код, как вы решили эту проблему? Это ошибка в Кордове? У нас та же проблема. – christianmenkens

+0

Не знаю, работает ли FileTransfer сейчас, не пробовал в то время. См. Пример кода выше. Вам нужно знать mimeType для построения правильного blob, но это может быть только текст, который я предполагаю. Если вам нужна ссылка для FileSystemAPI, найдите Filer.js от Eric Bidelman. –

ответ

3

Я нашел проблему в ИО:

Путь: путь = «Файл: // локальный/вар/мобильный/Применения/D702F059-A29F-4FF4-A165-D4A903DEDE7D/Документы/сняты/2419747919.jpeg «

не работает, потому что это URL-адрес с« localhost ».

Из FileEntry в Кордове можно получить строку с использованием «fullPath» и «toURL» ... на Android они работают как для записи файла. На iOS работает только fullPath ... URL-адрес не удается успешно записать файл!

+0

Привет @christianmenkens, я знаю, что вы сделали на возврате обратного вызова успеха, чтобы отобразить его на изображении src? я получил успех, но он возвращает var/mobile ... – BizApps

+0

путь с файлом: //var/mobile/Applications/D702F059-A29F-4FF4-A165-D4A903DEDE7D/Documents/captured/2419747919.jpeg должен работать нормально IOS. Мы просто используем этот путь, чтобы поместить его в FileUpload. – christianmenkens

+0

@christianmenkens вы уверены, что после файла есть только две черты:? Я получаю три при запросе FS ... (и ошибка какао 512 ..хорошо работает на Android) – trainoasis

0

У меня были проблемы с этим во время работы с iOS Simulator, но как только я протестировал его на самом устройстве, он сработал.

0

использовать nativeURL, чтобы получить префикс и добавить к нему имя файла и передать его объекту FileTransfer, он будет работать.

Смежные вопросы