Giriş yapmadınız.

#1 05.08.2016 13:44:15

arslan
Üye
Kayıtlı: 05.08.2016
Mesajlar: 6

Laravel 4.2 Resim Upload

Öncelikle merhaba arkadaşlar, laravel kullanmaya yeni başladım o yüzden acizliğimi görmezden gelin. Bir çatı kullanmadan önce verot.net'in upload sınıfını kullanıyordum crop işlemlerinde çok yardımcı oluyordu. Şimdi o sınıfı laravelde kullanabilirmiyim kullanabilirsem nasıl ? veya kullanma derseniz resim upload ve crop işlemlerini yapabileceğim başka bir sınıf mevcutmu ? Teşekkürler.

Çevrimdışı

#2 05.08.2016 16:23:07

evrend
Üye
Yer: DÜZCE
Kayıtlı: 26.05.2014
Mesajlar: 370
Website

Yanıt: Laravel 4.2 Resim Upload

Öncelikle yeni başlıyorsanız kesinlikle Laravel 4.2 değil 5.3 yada LTS sürümü olan 5.1 ile başlamanızı tavsiye ederim. Upload işlemlerini laravel ile kolaylıkla yapabilirsiniz. Resim düzenlemek için kullanabileceğiniz intervention/image paketini tavsiye ederim oldukça gelişmiş seçenekler sunmakta. Aynı paket upload işlemi içinde kullanılabilir.

Laravel 5.* upload işlemleri için ;
https://laravel.com/docs/5.1/filesystem

intervention/image için;
http://image.intervention.io/

intervention/image upload;
http://image.intervention.io/use/uploads


Unutmayın, HERKOD aynı değildir.
Fiyat/Performans Cloud için: Digital Ocean.
Ayda 2,5$'a 512Mb ram, 1Core CPU Cloud için: Vultr.

Çevrimdışı

#3 15.08.2016 11:36:47

arslan
Üye
Kayıtlı: 05.08.2016
Mesajlar: 6

Yanıt: Laravel 4.2 Resim Upload

Teşekkürler maalesef 4.2 ile başlamış bulundum ve projenin sonuna yaklaştım o yüzden değiştiremiyorum. Image intervention kullanmak istedim fakat getClientOriginalName() hatası alıyorum inputtan fotoğrafı alamıyorum ajax ile post ettiğim için kod yapım şu şekilde

$(document).on('click', '.kaydet-buton', function (e) {

        var smn = $(this).parents('form').find('textarea[name=content]');
        smn.val( smn.summernote().code() );

        var formsVal = $(this).parents('form').serialize();
        var formsVal2 = $('.drop-form-2').serialize();
        var url = $(this).parents('form').attr("action");

        $.ajax({
            url : url,
            data : formsVal + '&' + formsVal2,
            dataType : "json",
            type : "post",
            success: function(data){
                //console.log(data)
                if(data.status === false){
                    if(data.msg)
                        alert(data.msg);
                    //createMsg(data.msg,"hata");
                    return false;
                }

                if(data.redirect){
                    if(data.msg)
                        alert(data.msg);
                    //createMsg(data.msg,"onay");
                    location.href = data.redirect;
                }else{
                    if(data.msg)
                        alert(data.msg);
                    //createMsg(data.msg,"onay");
                }
            }
        });

        return false;

    });

bunun fotoğrafıda alması için ne yapmam gerekiyor ?

Çevrimdışı

#4 15.08.2016 11:50:50

evrend
Üye
Yer: DÜZCE
Kayıtlı: 26.05.2014
Mesajlar: 370
Website

Yanıt: Laravel 4.2 Resim Upload

Formdaki dataları file ile birlikte alabilmek için, aşağıdaki şekilde kullanıyorum. Serialize dosyaları serialize etmiyor. Aşağıdaki kullanımla post edeceğim datayı dosyalarla birlikte sorunsuz alıyorum. Eklemek istediklerimi ekliyorum sonra.

        var formData = new FormData(" *** form selectorunuz  ***  ").find('form')[0]);
        formData.append('_token', hToken());
        $('.summernote', CrudModal).each(function(){
            formData.append($(this).attr('data-name'), $(this).summernote("code"));
        });

Sonrasında ajax isteğinize aşağıdaki parametreyi eklemelisiniz;

enctype: 'multipart/form-data',

Kendi js kütüphanem içerisinde, dosya işlemleri için, uzun süredir sorunsuzca kullandığım fonksiyon aşağıdadır, kendinize göre düzenlersiniz.

    hModalAjaxWithFile = function(type, url, selector){
        var CrudModal = hCrudModal(selector);
        $(".modal-cover", CrudModal).fadeIn(500);

        var formData = new FormData($(hCrudModal(selector)).find('form')[0]);
        formData.append('_token', hToken());
        $('.summernote', CrudModal).each(function(){
            formData.append($(this).attr('data-name'), $(this).summernote("code"));
        });

        $.ajax({
            type: type,
            url: url,
            data: formData,
            processData: false,
            contentType: false,
            dataType: "json",
            enctype: 'multipart/form-data',
            cache: false,
            complete: function(data, durum) {
                if(durum == "success") {
                    hCloseModal(CrudModal);
                    hReloadTable(selector);
                    HNoteSuccess("Successfully completed.");
                } else {
                    console.log(data);
                    try {
                        HNoteErrorJson(data.responseJSON);
                    }
                    catch(err) {
                        HNoteError("Sorry, something went wrong!");
                    }
                }
                $(".modal-cover").fadeOut(500);
            }
        });
    },

Son düzenleyen evrend (15.08.2016 11:52:53)


Unutmayın, HERKOD aynı değildir.
Fiyat/Performans Cloud için: Digital Ocean.
Ayda 2,5$'a 512Mb ram, 1Core CPU Cloud için: Vultr.

Çevrimdışı

Forum alt kısmı