2014-11-25 20 views
10

Phoenix uygulamasında /file yoluna dosya yüklemek için kullanılan bir dosya alanına sahip bir HTML formum var.Büyük bir dosyayı bir formdan Phoenix'e nasıl yüklerim?

Bu davranışı daha hızlı test için curl -v -F "[email protected]" http://localhost:4000/file/ numaralı komut satırından taklit ediyorum. Ben büyük bir dosyası kullandığınızda

(dönüm noktası 7.7MB civarında olduğu görünüyor), ben Tak şu istisna olsun:

18: 40: Sürecin < 0.420.0 yılında 38,897 [hata] Hata > çıkış değeri ile birlikte: {[{reason, # {'istisnası' => true, 'struct' => 'Elixir.Plug.Parsers.RequestTooLargeError', message => nil}}, {mfa, {' Elixir.Plug.Adapters.Cowboy.Handler' init, 3}}, {StackTrace [{ 'Elixir.Plug.Parsers', azaltmak, 6, [{dosya "lib/fiş ...

Büyük dosyaların yüklenmesine izin vermek için bir çözüm var mı?

Fiş'te :length seçenek anahtar sözcüğü var gibi görünüyor, ancak bunu Phoenix'ten nasıl ayarlayabilirim? Ve 8_000_000'un bu özel değerinin seçilmesinin nedeni nedir?

cevap

6

Sen config/config.exs dosyasında bu yapılandırabilirsiniz:

config :phoenix, MyApp.Router, 
    ... 
    parsers: [parsers: [:urlencoded, :multipart, :json], 
      accept: ["*/*"], 
      json_decoder: Poison, 
      length: 100_000_000], 
+0

Bir sürüm> = 0.5.0 gerektiriyor gibi görünüyor, bu doğru mu? – adanselm

+1

Doğru. 0.6.0 sadece çıktı, bu yüzden eğer yapabiliyorsanız en son/en büyük seviyeye yükseltmeyi öneriyorum. Güncelleme kılavuzlarını https://gist.github.com/chrismccord/e774e6ab5220e6505a03 adresinden takip edebilir ve sorun yaşarsanız # elixir-lang irc komutunu kullanabilirsiniz. –

+0

Phoenix 0.13.1 için çalışamam. [Config/config.exs] 'i değiştirdim (https://github.com/jakubgarfield/imageyard/blob/0eaf0fe2954bf04064576935b1f43e8f978b1d85/config/config.exs). Herhangi bir fikrim neler kaçırırım? –

İlgili konular