Stepan13
@Stepan13
JS everywhere...

Как загрузить файл на сервер средствами AngularJS?

Доброго времени суток!
Подскажите как правильно организовать отправку формы Angular с выбором файла изображения и наименования этого изображения. Основная проблема именно в загрузке файла, никак не пойму, как это сделать.
  • Вопрос задан
  • 823 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Beltoev
Живу в своё удовольствие
Используйте готовое решение: https://github.com/danialfarid/ng-file-upload

Всё сведется к тому, что нужно будет в контроллер добавить сервис Upload, а уже в нём вызывать метод upload, передавая ему url адреса для загрузки и прочие параметры.

Решение только на первый взгляд сложное, но на деле там всё просто выходит =)
Ответ написан
Комментировать
Stepan13
@Stepan13 Автор вопроса
JS everywhere...
Ну вот сколько я этих готовых решений не попробовал, почему-то так и не получилось реализовать, может всё дело было в особенностях бэкенда на django. Но каждый раз получал 400 ошибку. В итоге рабочая реализация получилась вот такой.

$scope.uploadFile = function(file, title){
            var fd = new FormData();

            fd.append('title', title);
            fd.append('image', file);
            fd.append('hotel', $scope.hotel.id);
            fd.append('is_primary', false);

            return $http({
                url: '/api/v2/hotels/image/',
                method: 'POST',
                data: fd,
                headers: { 'Content-Type': undefined },
                transformRequest: angular.identity,
                transformResponse: function (data) {
                    data = JSON.parse(data);
                    return data;
                }
            })
            .success(function(data){
                $scope.images.push(data);
            });
        };
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы