Загрузка изображения в Cloudinary (среднее)

Этот вопрос включает в себя подробности о структуре, но у меня просто общий вопрос о том, как загрузить файл фотографии в API. Какова фактическая часть изображения, которое я отправляю? Каково содержание фотографии?

Я могу успешно загрузить изображение при нажатии кнопки (используя angular-file-uploader. Однако я не знаю, какую часть этого объекта я должен отправить в свой API.

Код ниже будет жаловаться на ошибку типа: он не может преобразовать циклическую структуру в JSON.

Так что я тоже могу попытаться вытащить файл из очереди, но потом, когда он попадет в облачный, я получаю сообщение об ошибке: TypeError: file.match is not a function.

HTML

<div>
    <input type="file" nv-file-select uploader="user.uploader" />
    <button ng-click="user.upload()">Upload</button> 
</div>

контроллер

vm.upload = function() {
    console.log(vm.uploader);
    var photo = {file: vm.uploader.queue[0]}
    UserDisplay.uploadPhoto($stateParams.user_id, vm.uploader.queue[0])
}

API

cloudinary.uploader.upload(req.body.file, function(result) {
    console.log("made it here");
    console.log(result)
});

person jro    schedule 08.02.2016    source источник


Ответы (1)


Библиотека Cloudinary Angular поддерживает ng-file-upload, а не angular-file-uploader.

Там какой-то код, который здесь не отображается. Например, что такое UserDisplay?

Вы получаете эту ошибку, потому что очередь содержит объекты FileItem, а не строки. Вы должны инициализировать FileUploader URL-адресом для загрузки, а formData включает upload_preset. Таким образом, нет необходимости переопределять функцию загрузки.

Вы можете увидеть пример проекта в репозитории Cloudinary AngularJS: https://github.com/cloudinary/cloudinary_angular/tree/master/samples/photo_album

person Itay Taragano    schedule 10.02.2016