wuarmin
November 14, 2022, 9:17am
1
Hey,
this works in Hanami 1.3, but if I try to upload a XML file to a hanami 2 app, I get a
Rack::QueryParser::InvalidParameterError
<!--/tmp/test/test.xml-->
<root>
<name>100 % Meijer</name>
</root>
curl -F 'file=@/tmp/test/test.xml' http://localhost:2300/test/upload
I get following error
Rack::QueryParser::InvalidParameterError: invalid %-encoding
The Content-Type
is multipart/form-data
. Changing it to application/xml
does not change anything.
Is there a way to configure the Hanami 2 application to make this work?
Thanks
jodosha
November 14, 2022, 9:35am
2
wuarmin
November 14, 2022, 9:54am
3
@jodosha Thanks.
Oh, is there already an open issue at rack
? I can’t find any? Do you know a workaround?
wuarmin
November 14, 2022, 1:22pm
4
wuarmin
November 14, 2022, 4:33pm
5
@jodosha It seems it’s a hanami issue . It seems that the issue lies here: router/router.rb at d4f7a677a34978f24c153b9c96b90a03dd3e3a9b · hanami/router · GitHub
We have to change the multipart parsing.
Rack::QueryParser::InvalidParameterError:
invalid %-encoding (<root><name>100% Meijer</name></root>)
# /usr/local/bundle/gems/rack-2.2.4/lib/rack/utils.rb:57:in `unescape'
# /usr/local/bundle/gems/rack-2.2.4/lib/rack/query_parser.rb:159:in `unescape'
# /usr/local/bundle/gems/rack-2.2.4/lib/rack/query_parser.rb:73:in `block (2 levels) in parse_nested_query'
# /usr/local/bundle/gems/rack-2.2.4/lib/rack/query_parser.rb:73:in `map!'
# /usr/local/bundle/gems/rack-2.2.4/lib/rack/query_parser.rb:73:in `block in parse_nested_query'
# /usr/local/bundle/gems/rack-2.2.4/lib/rack/query_parser.rb:72:in `each'
# /usr/local/bundle/gems/rack-2.2.4/lib/rack/query_parser.rb:72:in `parse_nested_query'
# /usr/local/bundle/gems/rack-2.2.4/lib/rack/utils.rb:102:in `parse_nested_query'
# /usr/local/bundle/gems/hanami-router-2.0.0.rc1/lib/hanami/router.rb:923:in `_params'
jodosha
November 14, 2022, 7:04pm
6
@wuarmin I’ll have a look at it. Thanks.
wuarmin
November 15, 2022, 10:45am
7