Я передаю данные изображения и формы за раз, но это дает только один наоборот, вот код контроллера:
var app = angular.module("DemoModule", []);
app.directive("fileInput", function ($parse) {
return {
link: function ($scope, element, attrs) {
element.on("change", function (event) {
var files = event.target.files;
$parse(attrs.fileInput).assign($scope,
element[0].files);
$scope.$apply();
});
}
};
});
app.controller("DemoController", function($scope, $http) {
$scope.CustFormData = {};
$scope.Upload = function () {
var form_data = new FormData();
angular.forEach($scope.files, function (file) {
form_data.append('file', file);
});
$http.post("api/Upload.php",
form_data,
{
CustFormData : $scope.CustFormData,
transformRequest: angular.identity(),
headers:
{'Content-Type': undefined, 'Process-
Data':false}
}).then(function successCallback(response) {
alert(response.data);
});
};
};
Вот HTML-код для загрузки и отправки текстовых полей
PHP скрипт:
<div ng-app="DemoModule" ng-controller="DemoController">
<input type="text" name="firstname" ng-model="CustFormData.firstname">
<input type="text" name="lastname" ng-model="CustFormData.lastname">
<input type="file" file-input="files" ng-model="CustFormData.files">
<button type="submit" ng-click="Upload()">Save</button>
</div>
PHP скрипт для хранения данных в базе данных:
$postdata = file_get_contents("php://input");
if(isset($postdata) && !empty($postdata) && !empty($_FILES)){
$request = json_decode($postdata);
$firstname = $request->firstname;
$lastname = $request->lastname;
$path = 'upload/'.$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name']);
}
Моя проблема выше кода работает, но не в то же время. если я удаляю данные формы, он будет хранить изображение, а если я удаляю данные изображения, он будет хранить данные формы. Может кто-нибудь сказать мне, где я делаю ошибку ???