ng-file-upload не загружается в Ionics

Я использую библиотеку ng-file-upload. для моего мобильного приложения Ionic, и у меня возникли проблемы с реализацией этой библиотеки. Я также использовал Codeigniter для своего REST API. В моем запросе на загрузку должны быть поля (некоторые данные) и изображения. вот мой код до сих пор:

$scope.doSubmitAttachment = function(){
    console.log('@@@@@doSubmitAttachement- Process Request--' + $scope.images);
    $scope.upload($scope.images);
    };



$scope.upload = function (file) {
    Upload.upload({
        url: 'http://192.168.8.247:130/api/upload',
        fields: {'username': 'juan'},
        file: file
    }).progress(function (evt) {
        var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
        console.log('progress: ' + progressPercentage + '% ' + evt.config.file.name);
    }).success(function (data, status, headers, config) {
        console.log('file ' + config.file.name + 'uploaded. Response: ' + data);
    }).error(function (data, status, headers, config) {
        console.log('error status: ' + status);
    })
};

Это уже подключено к кнопке, но каждый раз, когда я нажимаю кнопку, ничего не происходит, в файле журнала я получаю ошибку 0.

09-01 11:56:07.726  11315-11315/com.ionicframework.myapp I/chromium﹕ [INFO:CONSOLE(173)] "@@@@@doSubmitAttachement- Process Request--file:///data/data/com.ionicframework.myapp/cache/maxresdefault1914240190.jpg", source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)

09-01 11:58:14.906  11315-11315/com.ionicframework.myapp I/chromium﹕ [INFO:CONSOLE(173)] "error status: 0", source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)

09-01 13:16:09.602    1541-1541/com.ionicframework.mase101409 I/chromium﹕ [INFO:CONSOLE(173)] "error data: null", source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)

09-01 13:16:09.602    1541-1541/com.ionicframework.mase101409 I/chromium﹕ [INFO:CONSOLE(173)] "error config: [object Object]", source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)

09-01 13:16:09.606    1541-1541/com.ionicframework.mase101409 I/chromium﹕ [INFO:CONSOLE(173)] "error headers: function (name) {
if (!headersObj) headersObj =  parseHeaders(headers);
if (name) {
var value = headersObj[lowercase(name)];
if (value === void 0) {
value = null;
}
return value;
}
return headersObj;
}", source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)

======РЕДАКТИРОВАТЬ 2=======

Теперь у меня есть ответ от сервера, я ввел неправильный URL. Но теперь проблема в том, что я не могу проанализировать ответ в $_FILES в моем бэкэнде codeigniter. Я делаю var_dump и вот ответ:

09-01 23:13:59.801    5236-5236/com.ionicframework.mase101409 I/chromium﹕ [INFO:CONSOLE(173)] "file uploaded. Response: array(0) {
}
", source: file:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)

С нетерпением жду вашей помощи, я не могу понять, чего мне не хватает.

Спасибо


person chkm8    schedule 01.09.2015    source источник
comment
Один только этот журнал мало о чем говорит. Попробуйте также распечатать data.   -  person yvesmancera    schedule 01.09.2015
comment
Я напечатал каждый ответ в функции ошибки выше: 09-01 13:16:09.602 1541-1541/com.ionicframework.mase101409 I/chromium﹕ [INFO:CONSOLE(173)] данные об ошибке: null, источник: файл:/// android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173) 09-01 13:16:09.602 1541-1541/com.ionicframework.mase101409 I/chromium﹕ [INFO:CONSOLE( 173)] ошибка конфигурации: [объект Объект], источник: файл:///android_asset/www/plugins/cordova-plugin-console/www/console-via-logger.js (173)   -  person chkm8    schedule 01.09.2015
comment
@yvesmancera я уже добавил несколько файлов журнала.   -  person chkm8    schedule 01.09.2015
comment
См. вкладку сети клиента, чтобы убедиться, что все файлы отправляются в запросе. Если это так, то это будет вопрос на стороне сервера, поэтому он не связан с ionic или ng-file-upload. Вы можете найти любой пример загрузки нескольких файлов, используя простую html-форму отправки для php, и сделать свой код таким.   -  person danial    schedule 02.09.2015
comment
Я просто просмотрел коды и после нескольких часов попыток понять, что не так. Сначала я попытался создать пример приложения с помощью ionic и добавить примеры кодов, найденные в ng-file-upload (jsfiddle.net/danialfarid/1m6fn6re), я обнаружил, что плагин работает, если вы запускаете его в браузере, поэтому в моем мобильном коде я измените его на рабочий код в браузере, и он отлично отправляет файл, НО, так грустно, что он действительно поддерживает только ОДНУ загрузку на запрос, ЕСЛИ ваш браузер не работает в html5, а в случае мобильного приложения он не работает под html5. Правильно меня, если я ошибаюсь в этом :)   -  person chkm8    schedule 03.09.2015
comment
Мобильное приложение также должно поддерживать html5. В основном для IE8-9 требуется прокладка флэш-памяти.   -  person danial    schedule 13.09.2015


Ответы (1)


Согласно этой проблеме в репозитории, вы можете не используйте ng-file-upload с Cordova. Вместо этого вы должны использовать cordova-plugin-file-transfer и, если вы хотите, его адаптер ng-cordova.

person Deurco    schedule 22.02.2016
comment
Нет голосов или комментариев к этому ответу. Действительно ли ng-file-upload не работает с Ionic, и единственный вариант — это cordova-plugin-file-transfer?? - person JoeCool; 20.11.2016
comment
Удалось ли вам в конце концов исправить это с помощью одного из плагинов, упомянутых Deurco? - person Zabs; 09.08.2017