मैं
ब्राउज़ फ़ाइलें बटन
<input type="file" upload-files multiple />
बनाएं बटन है
<button class="btn btn-link" ng-click="store()" >Create</button>
निर्देशक
myApp.directive('uploadFiles', function() {
return {
scope: true,
link: function (scope, element, attrs) {
element.bind('change', function (event) {
var files = event.target.files;
for (var i = 0; i < files.length; i++) {
scope.$emit("seletedFile", { file: files[i] });
}
});
}
};
});
फ़ाइल के लिए सुनो
$scope.files = [];
$scope.$on("seletedFile", function (event, args) {
console.log("event is ", event);
console.log("args is ", args);
$scope.$apply(function() {
$scope.files.push(args.file);
});
});
डेटा पोस्ट और चयनित फ़ाइलों का चयन किया।
$scope.store = function() {
$scope.model = {
name: $scope.name,
type: $scope.type
};
$http({
method: 'POST',
url: '/image/store',
headers: { 'Content-Type': undefined },
transformRequest: function (data) {
console.log("data coming into the transform is ", data);
var formData = new FormData();
formData.append("model", angular.toJson(data.model));
for (var i = 0; i < data.files; i++) {
formData.append("file" + i, data.files[i]);
}
return formData;
},
data: { model: $scope.model, files: $scope.files }
})
.then(function successCallback(response) {
console.log("%cSuccess!", "color: green;");
console.log(response);
$scope.refresh();
$scope.showModal = false;
}, function errorCallback(response) {
console.log("%cError", "color: red;");
console.log(response);
});
};
परिणाम
मेरे कंसोल में, मैं नहीं दिख रहा है मेरी फ़ाइलें बैक-एंड में मेरी नियंत्रक को भेज देगा मिला है।
array:1 [
"model" => "{"type":"wedding"}"
]
प्रश्न
मैं क्या कदम भूल गए?
कोई इसके बारे में कैसे और डीबग करेगा?
कुछ समय के लिए पर स्पष्ट है निश्चित रूप से एक विकल्प के रूप में, आप https://github.com/danialfarid उपयोग कर सकते हैं/ng-file-upload – EmptyCup