folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Javascript Ajax Big String Post İşlemi



Javascript Ajax Big String Post İşlemi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Jigsaw
    Jigsaw's avatar
    Kayıt Tarihi: 07/Nisan/2011
    Erkek

    Arkadaşlar selam,

    Aşağıdaki ajax requestinde Base64Data property sine yaklaşık 20 MB lık string post ediyorum. Fakat .net core tarafındaki controller ıma bu değer setlenmiyor. Bir türlü gelmiyor. 

     

    Boyutu yüksek string ler set etmek istiyorum controller tarafına. html form veya javascript formData objesi kullanmak istemiyorum. Ben işin içinden çıkamadım ne yaptıysam setlenmiyor. Ufak stringler 3-4 MB gibi. Bu değerler setleniyor fakat büyük stringler setlenemiyor. (.Net Core 3.1 projesi)

     

    Var mıdır yardım edebilecek bir arkadaş?

     

    Ajax isteği:

     var reader = new FileReader();
            reader.readAsDataURL(fileInput.files[0]);
    
            reader.onloadend = function (event) {
    
                debugger
    
                var base64 = reader.result;
                var blob = dataURLToBlob(base64);
                var formData = new FormData();
                formData.append('file', blob);
    
    
                $.ajax({
                    type: "POST",
                    url: "../Document/AddDocument",
                    data: {
                        token: GetRequestToken(),
                        DocumentTypeId: $("#DocumentTypes").val(),
                        Base64Data: /base64,(.+)/.exec(reader.result)[1],
                        FileName: fileInput.value.substr(fileInput.value.lastIndexOf('\\') + 1).split('.')[0],
                        FileExtension: fileInput.value.split('.')[1],
                        Tag: $("#Tags").val(),
                        DocumentProperties: properties
                    },
    
                    success: function (data) {
    
                        debugger
    
                        var response = JSON.parse(data);
    
                        if (response.success) {
                            alert("Döküman ekleme başarılı!");
                            location.reload();
                        }
                        else {
                            alert(response.error.message);
                            ;
                        }
                    },
                    error: function (error) {
    
                        alert(error);
                    }
    
                })
                    .done(function (data) {
                        alert("success");
                    })
                    .fail(function () {
                        alert("error");
                    });;
    
    
            }
    

     


    Başkalarına hakim olan kuvvetlidir, kendine hakim olan kudretlidir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Öncelikle konsola bir bak hata düşüyor mu?

    Hata düşmüyorsa ajax isteğini karşıladığın yerde breakpoint atıp datanın gelip gelmediğini kontrol et.

    Yine gelmiyorsa, gelen 20 mb string ifadeyi 10 mb vs.. şeklinde düşürüp post etmeyi dene.

    Yine gelmiyorsa 5 mb vs.. şeklinde yarılayarak göndermeyi dene.

    string ifade sınırı olduğunu sanmıyorum ama denemekte fayda var.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    hocam öncelikle chrome devtools'da network'den bak bakalım client side normal mi. burada sorun yoksa backend'de bir filtreye düşüyor olabilirsin. .net core yazmadığım için detayını bilmiyorum ancak bu tür şeylerde default max limitler olabilir. (eğer böyle bir limit varsa bu limiti sadece ilgili action için kaldır komple sistemden kaldırma yada değiştirme)


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Jigsaw
    Jigsaw's avatar
    Kayıt Tarihi: 07/Nisan/2011
    Erkek

    Konsola herhangi bir hata düşmüyor. Hatta 200 alıyorum fakat post ettiğim string hiç ortalıkta yok.

    @Terror hocam herhangi bir request limiter ımda tanımlı değil. Bi sınır koymadım. Sıkıntı ajax ta gibime geliyor. Çünkü ufak 3-4 mb lik bişey set ettiğimde controller a geliyor string

     

    Jigsaw tarafından 16/Tem/20 21:22 tarihinde düzenlenmiştir

    Başkalarına hakim olan kuvvetlidir, kendine hakim olan kudretlidir
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    Jigsaw bunu yazdı

    Konsola herhangi bir hata düşmüyor. Hatta 200 alıyorum fakat post ettiğim string hiç ortalıkta yok.

    @Terror hocam herhangi bir request limiter ımda tanımlı değil. Bi sınır koymadım. Sıkıntı ajax ta gibime geliyor. Çünkü ufak 3-4 mb lik bişey set ettiğimde controller a geliyor string

     

     

    man, are you really sure about that?

    https://github.com/aspnet/ServerTests/issues/92

    check this out for good measure.


    0x0480 takilin madem ﷽﷽﷽
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    neverland
    neverland's avatar
    Kayıt Tarihi: 08/Mayıs/2020
    Erkek

    20MB normal bir string değildir o kanımca. Dosyaya çevirip dosya upload et.


    Bir gece her zamanki gibi yatağına girip gözlerinin ağırlığına dayanamayıp huzurla uyuduğunu düşün. Sonrasında da hiç uyanmadığını düşünmeye çalıştığında aklında hiçbir şey canlanmayacaktır, çünkü beynin kapalıyken neler olup bittiğini bilemezsin, bu yüzden bu noktayı hayal edebileceğin bir veri yok elinde. Ölüm de tam olarak böyle bir şey. Uykunun 4. saatindeki hissettiklerin, yani; hiçlik, hissizlik. Varlığından ya da yokluğundan haberinin olmaması. Böyle düşününce ölüm biraz daha tanıdık geliyor, daha kabullenilebilir geliyor. Belki de içindeki o çılgın yaşama arzusuna sahip olan egonu ancak böyle ehlileştirebiliyorsun. Aksi halde çılgınca yaşama arzusuna sahip egon sana tanrılar yaratıyor, cennetler vaat ediyor, seni sonsuz bir yaşamın varlığı ve zevkleri ile kandırıyor.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    neverland bunu yazdı

    20MB normal bir string değildir o kanımca. Dosyaya çevirip dosya upload et.

    stringi secilen dosyadan aliyor zaten kodundan anladigim kadariyla.

    fileReader API kullanmis.

    Serverinde dosya olarak tutmak istemiyor ama. icindekiyle ilgileniyor sadece.


    0x0480 takilin madem ﷽﷽﷽
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Jigsaw
    Jigsaw's avatar
    Kayıt Tarihi: 07/Nisan/2011
    Erkek

    Bir dosyayı base64 kodlayıp onu post ediyorum arkadaşlar. Amaç big string post edebilmek. Herhangi bir rule olmadığı halde neden post edemiyorum sorun orda aslında. 3-4 mb lik bir dosyayı base64 e çevirip post edebiliyorum fakat büyük bir stringi neden post edemiyorum? DOM u farklı bir şekilde manipule mi etmek gerekiyor acaba?

    @end hocam github linkinde paylaştığın konu .net core 3.1 öncesi için geçerli. .net core 3.1 de web.config dosyası yok.

    Jigsaw tarafından 17/Tem/20 00:07 tarihinde düzenlenmiştir

    Başkalarına hakim olan kuvvetlidir, kendine hakim olan kudretlidir
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Setting.json veya startup.cs gibi ayar dosyasında ayarlama yapman gerekebilir.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek
    Jigsaw bunu yazdı

    Bir dosyayı base64 kodlayıp onu post ediyorum arkadaşlar. Amaç big string post edebilmek. Herhangi bir rule olmadığı halde neden post edemiyorum sorun orda aslında. 3-4 mb lik bir dosyayı base64 e çevirip post edebiliyorum fakat büyük bir stringi neden post edemiyorum? DOM u farklı bir şekilde manipule mi etmek gerekiyor acaba?

    @end hocam github linkinde paylaştığın konu .net core 3.1 öncesi için geçerli. .net core 3.1 de web.config dosyası yok.

    Dostum web.config 3.1 öncesinde vardır yerine başka bir config dosyası gelmiştir diye düşünüyorum. sen client side da bir hata ile karşılaşmıyorsan backendde ilk kontrolü yapman gerekiyor. ajax post'da 20mb'da sorun bir sorun yaşamazsın. yaşarsanda zaten yazar console'da. sunucu taraflı bir sorun olsa ilk aşamada error'a düşmesi gerek ancak bir şekilde middleware'larda bozulmuş olabilir bu durum ve loglanmıyor olabilir. Fiddler ile networku takip edip request'in sunucuya gidiyormu gitmiyormu en net şekilde görebilirsin. eğer fiddler'da request de senin content'in boşsa tamam client side'da hata vardır. ancak network'den düzgün şekide geçip serverda okuyamıyorsan buda sunucuda olabileceğine işaret eder.

    bu konunun çözümünü çok merak ediyorum umarım kısa sürede çözersin bizide bilgilendirirsin.


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek

    .net çi değilim fakat content length, max json uzunluğu vb gibi bir ayar varmı  ona bakarmısın

     


    |sadece aptalların başarısı ders notu ile ölçülür|
Toplam Hit: 2397 Toplam Mesaj: 12
ajax ajax base64 post ajax post