Saya mendapat masalah kecil dengan unggahan gambar di sudut.

Kode ini berfungsi dengan baik, dikirim ke PHP tanpa trobel, saya dapat melihat posting REQUEST apakah ada array data, masalahnya adalah ketika saya mencoba print_r($_FILES); php mengatakan ada dan array kosong.

    socialCtrl.directive('upload', function() {
    return {
        restrict: 'A',
        replace: true,
        controller: function($scope, $http, $rootScope) {
            var formdata = (window.FormData) ? new FormData() : false;

            $(".upload").bind("change", function (evt) {
                var file = this.files[0];

                if (!!file.type.match(/image.*/)) {
                    if ( window.FileReader ) {
                        var reader = new FileReader();
                        reader.onloadend = function (e) { 
                            $(".preview").find("img").attr("src", e.target.result);
                        };
                        reader.readAsDataURL(file);
                    }
                    if (formdata) formdata.append("file", file);
                }   

                if (formdata) {
                     $http({
                       method: 'POST',
                       url: 'php/imagesuploader.php',
                       data: formdata,
                       cache:false,
                        contentType: false,
                        processData: false,
                   }).success(function(result) {
                        console.log(result)
                    });
                }
            });
        }
    }
})
0
user3173634 15 Mei 2015, 11:10

1 menjawab

Jawaban Terbaik

Anda tidak dapat POST file seperti ini, Anda harus mengirimkan ini sebagai data formulir (sebagai data formulir multi-bagian) atau mengubah permintaan (seperti yang ditunjukkan di postingan blog ini).

Contoh sederhana cara memposting data formulir ditunjukkan di bawah ini.

var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
        transformRequest: angular.identity,
        headers: {'Content-Type': undefined}
})
.success(function(){
})
.error(function(){
});
0
jhuiting 15 Mei 2015, 11:39
Saya hanya ingin mengubah file yang harus diunggah. jadi bentuk html itu hanya input name="file" adn type="file" /> tidak ada yang lain sehingga kode yang Anda miliki di sana tidak akan berfungsi untuk kasus saya
 – 
user3173634
15 Mei 2015, 11:24
Saya pikir ini akan berhasil, Anda hanya perlu menambahkan transformRequest dan header ke permintaan $http POST Anda.
 – 
jhuiting
15 Mei 2015, 11:28