上传图片Laravel没有形式AngularJS

时间:2017-09-05 17:35:30

标签: javascript angularjs laravel file-upload

我需要使用AngularJS上传图片而没有表格。但我不知道如何在Laravel接收它,发送它。 我的代码是这样的:

<input type="file" name="file" accept="image/jpeg, image/png" id="file" ng-model="data.image">


$('input[type=file]').change(function () {
    $scope.img = this.files[0];
    var filePath = $("#file").val();
    var reader = new FileReader();
    reader.onload = function (e) {
        $('#image').attr('src',e.target.result);
        $scope.img["imgbase64"] = e.target.result;
    };
    reader.readAsDataURL(this.files[0]); 
});

我在这里使用这项服务:

        var imgSend = new FormData();
        imgSend.append("file",$scope.img);
        data["image"] = imgSend;
            url = "maquinas";    registroMaquinaServices.servicesRegistroMaquinaPost(url,data).then(function(promise){
                    var requests = promise.data.response;
                    console.log(requests);
                })

我发送给laravel。

enter image description here

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用https://github.com/ghostbar/angular-file-model 处理您的图像文件以进行上传,然后您就可以创建表单对象并将其发送到您的laravel服务器,以便能够将图像文件作为常规上传文件获取,一个base64编码文件。 这是我用来做的代码 在示例中,需要发送到服务器的所有数据都在$scope.data变量

$http({
    headers: {
        'Content-Type': undefined //undefined value is on purpose
    },
    method: method,
    url: url,
    data: $scope.data,
    transformRequest: function(data, headersGetter) {

        var formData = new FormData();

        angular.forEach(data, function(value, key) {
            formData.append(key, value);
        });

        return formData;
    }
})