Я пытаюсь загрузить изображение с angularjs.
HTML:
<input type="file" id="picture" name="picture"/> <button class="btn btn-primary" ng-click="AddNew()" type="submit">Save</button>
Controller.js
$scope.AddNew=function(){ console.log(picture.files.item(0)); $scope.myobject.picture=picture[0]; $http({ url: 'http://localhost/mypro/resource', method: "POST", data: {'resource' : $scope.myobject }, headers: {'Content-Type': undefined }, transformRequest: angular.identity }) .then(function(response) { // success }, function(response) { // optional // failed }); };
Laravel 5.2:
routes.php
Route::resource('resource','ResourceController');
контроллер:
public function store(Request $request){ Log::info('request: '.print_r(Input::all(),true)); Log::info('request: '.print_r($request,true)); return array('success' => true); }
Просто получить пустой массив здесь. И в консоли я получаю 500 (Internal Server Error).
Пожалуйста, расскажите мне, что я делаю неправильно.
Спасибо.
В порядке,
Я нашел решение, идя глубоко в SO.
Вот решение:
var profile_pic=picture.files.item(0); var jsonData=$scope.myobject; $http({ url: 'http://localhost/mypro/resource', method: "POST", headers: {'Content-Type': undefined }, transformRequest: function (data) { var formData = new FormData(); formData.append("model", angular.toJson($scope.myobject)); formData.append("profile_pic", picture.files.item(0)); return formData; }, data: {'myobject' : jsonData,'profile_pic':profile_pic},
Thanx SO 🙂