如何将表格中的大文件上传到凤凰城?

ada*_*elm 10 elixir phoenix-framework

我有一个带有文件字段的HTML表单,用于将文件上传到/file我的Phoenix应用程序中的路由.

我从命令行模仿这种行为,curl -v -F "file=@MyTestFile" http://localhost:4000/file/以便更快地进行测试.

当我使用一个大文件(转折点似乎约为7.7MB)时,我从Plug获得以下异常:

18:40:38.897 [错误]错误在过程<0.420.0>与退出值:{[{原因,#{ ' 例外 '=>真,' 结构 '=>' Elixir.Plug.Parsers.RequestTooLargeError',消息=>零}},{MFA,{ 'Elixir.Plug.Adapters.Cowboy.Handler',INIT,3}},{堆栈跟踪,[{ 'Elixir.Plug.Parsers',减少,如图6所示,[{文件," LIB /插......

是否有解决方法允许上传更大的文件?

:length在Plug中似乎有一个选项关键字,但我怎么能从凤凰城设置它?这个特殊价值8_000_000被选中的原因是什么?

Chr*_*ord 6

您可以在config/config.exs文件中配置它:

config :phoenix, MyApp.Router,
  ...
  parsers: [parsers: [:urlencoded, :multipart, :json],
            accept: ["*/*"],
            json_decoder: Poison,
            length: 100_000_000],
Run Code Online (Sandbox Code Playgroud)

  • 您现在将这些选项显式传递给endpoint.ex 中的`plug Plug.Static, ..`。 (2认同)