Как бинарные файлы POST с помощью AngularJS (с загрузкой DEMO)

невозможно отправить файл с угловым почтовым звонком

Я пытаюсь опубликовать файл .mp4 с некоторыми данными через ионный 1 с угловым 1. При отправке через POSTMAN это нормально и работает. Я получаю Success = false в своем приложении.

в POSTMAN нет заголовков и данных, Сервисный URL-адрес с запросом POST http://services.example.com/upload.php в форме данных

 j_id = 4124, type = text q_id = 6, type = text u_id = 159931, type = text file = demo.mp4, type = file 

в моем приложении:

 $rootScope.uploadQuestion = function () { var form = new FormData(); form.append("j_id", "4124"); form.append("q_id", "6"); form.append("u_id", "159931"); form.append("file", $rootScope.videoAns.name); //this returns media object which contain all details of recorded video return $http({ method: 'POST', headers: { 'Content-Type': 'multipart/form-data' }, // also tried with application/x-www-form-urlencoded url: 'http://services.example.com/upload.php', // url: 'http://services.example.com/upload.php?j_id=4124&q_id=8&u_id=159931&file='+$rootScope.videoAns.fullPath, // data: "j_id=" + encodeURIComponent(4124) + "&q_id=" + encodeURIComponent(8) + "&u_id=" + encodeURIComponent(159931) +"&file=" + encodeURIComponent($rootScope.videoAns), data: form, cache: false, timeout: 300000 }).success(function (data, status, headers, config) { if (status == '200') { if (data.success == "true") { alert('uploading...'); } } }).error(function (data, status, headers, config) { }); } 

    РЕКОМЕНДУЕТСЯ: POST двоичные файлы напрямую

    Проводка двоичных файлов с multi-part/form-data неэффективна, так как кодировка base64 добавляет дополнительные 33% служебных данных. Если API-интерфейс сервера принимает POST-файлы с двоичными данными, отправьте файл напрямую:

     function upload(url, file) { if (file.constructor.name != "File") { throw new Error("Not a file"); } var config = { headers: {'Content-Type': undefined}, transformRequest: [] }; return $http.post(url, file, config) .then(function (response) { console.log("success!"); return response; }).catch(function (errorResponse) { console.error("error!"); throw errorResponse; }); } 

    Обычно служба $ http кодирует объекты JavaScript как строки JSON . Используйте transformRequest: [] чтобы переопределить преобразование по умолчанию.


    DEMO прямой POST

     angular.module("app",[]) .directive("returnFiles", function() { return { require: "ngModel", link: postLink }; function postLink(scope, elem, attrs, ngModel) { elem.on("change", function(event) { ngModel.$setViewValue(elem[0].files); }); } }) .controller("ctrl", function($scope, $http) { var url = "//httpbin.org/post"; var config = { headers: { 'Content-type': undefined } }; $scope.upload = function(files) { var promise = $http.post(url,files[0],config); promise.then(function(response){ $scope.result="Success "+response.status; }).catch(function(errorResponse) { $scope.result="Error "+errorRespone.status; }); }; }) 
        
     Name={{files[0].name}} Type={{files[0].type}} RESULT={{result}} 

    Interesting Posts

    Загрузка / просмотр изображений в MVC 4

    Facebook login “, указанный URL-адрес не разрешен конфигурацией приложения”

    Проверка орфографии в Ubuntu

    Ручная настройка прокси-сервера в команде работает, но не устанавливает его в proxychains

    Использовать сенсорную панель при «набрав»?

    Отправка запроса HTTP POST в Java

    Использование контекста приложения во всем мире?

    Восстановить сертификат EFS от мертвой материнской платы

    Как генерировать распределенные данные, средние, SD, перекос и эксцесс в R?

    Моделирование сетевого соединения с низкой пропускной способностью и высокой задержкой в ​​Linux

    Рабочий процесс для статистического анализа и составления отчетов

    Acrobat Reader и сохранение последней страницы, которую я прочитал?

    Почему «защищенный» модификатор в Java разрешает доступ к другим classам в одном пакете?

    Попробуйте использовать Window.FEATURE_CUSTOM_TITLE, но получило исключение: вы не можете комбинировать собственные заголовки с другими функциями названия.

    ASP.net MVC 3 jQuery Validation; Отключить ненавязчивый OnKeyUp?

    Давайте будем гением компьютера.