koddla

Yazılımcıları bilgi ile güçlendirir.

Enctype ‘multipart/form-data’ ne anlama geliyor?

Bir HTML formunda enctype='multipart/form-data' ne anlama gelir ve ne zaman kullanmalıyız?

Bir POST isteği yaptığınızda isteği oluşturan verileri bir şekilde kodlamanız gerekir.

HTML formları üç kodlama yöntemi sağlar.

  • application/x-www-form-urlencoded (varsayılan)
  • multipart/form-data
  • text/plain

Bir de application/json için çalışmalar yapılıyordu ancak bundan vazgeçildi.

(HTML form gönderimi dışındaki araçlar kullanılarak oluşturulan HTTP istekleriyle başka kodlamalar da mümkündür. JSON, web hizmetleriyle kullanım için yaygın bir biçim ve SOAP da hala kullanır.)

Önemli noktalar şunlar:

  • Asla text/plain kullanmayın.

İstemci taraflı kod yazarken:

  • formunuz herhangi bir <input type="file"> öğesi içerdiğinde multipart/form-data kullanın.
  • diğer durumlarda multipart/form-data veya application/x-www-form-urlencoded kullanılabilir, ancak application/x-www-form-urlencoded daha verimli olacaktır.

Sunucu tarafı kodu yazarken:

  • Önceden yazılmış bir form işleme kütüphanesi kullanın

Çoğu kütüphane (örneğin Perl’de CGI->param veya PHP’de $_POST) sizin için bu farklılıkları halledecektir. Sunucu tarafından alınan ham veriyi kullanmaya çalışmayın.

Bazen her iki formatı da işleyemeyen bir kütüphane ile de karşılaşırsınız. Node.js’nin form verilerini işlemeye yönelik en popüler kütüphanesi, çok parçalı istekleri işleyemeyen gövde-ayrıştırıcıdır/body-parser (ancak yine de bunu yapabilecek bazı alternatifler öneren dökümantasyona sahiptir).


Ham verileri ayrıştırmak veya oluşturmak için bir kütüphane yazıyorsanız (veya hata ayıklıyorsanız), biçim hakkında endişelenmeye başlamanız gerekir. Bununla ilgiliyseniz aşağıdakileri bilmeniz faydalı olacaktır:

application/x-www-form-urlencoded URL’nin sonundaki bir sorgu dizesiyle aşağı yukarı aynıdır.

multipart/form-data önemli ölçüde daha karmaşıktır ancak tüm dosyaların verilere dahil edilmesini de sağlar. 

text/plain HTML 5 ile geldi ve yalnızca hata ayıklama için yararlıdır – spesifikasyondan: Bilgisayar tarafından güvenilir bir şekilde yorumlanamazlar .

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top