Я пытаюсь загрузить файл в grape
0.7.0
. Я использую FormData
и javascript
fetch
на передней панели.Загрузка файла с ruby grape
Мои заголовки запроса выглядит
accept:*/*
accept-version:v3
authorization:omitted
content-type:multipart/form-data
Origin:http://dev:3000
Referer:http://dev:3000/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36
Мой запрос полезной нагрузки выглядит
------WebKitFormBoundaryqiglzdBECLEG1gI3
Content-Disposition: form-data; name="csv"; filename="invitations.csv"
Content-Type: text/csv
------WebKitFormBoundaryqiglzdBECLEG1gI3--
Когда я просматриваю grape
Params в конечной точке я получаю
{"------WebKitFormBoundaryxxY3USBOh0XBBUbk\r\nContent-Disposition: form-data"=>nil,
"name"=>"\"csv\"",
"filename"=>
"\"invitations.csv\"\r\nContent-Type: text/csv\r\n\r\nFirst Last, [email protected]\r\n------WebKitFormBoundaryxxY3USBOh0XBBUbk--\r\n",
"route_info"=>
#<Grape::Route:0x0000000a25ce70
@options=
{:description=>"Invite via CSV",
:params=>
{"csv"=>
{:required=>false, :type=>"Rack::Multipart::UploadedFile", :desc=>"csv containing users to be invited"}},
:prefix=>nil,
:version=>"v3",
:namespace=>"/invitations",
:method=>"POST",
:path=>"/invitations/csv(.:format)",
:compiled=>/\A\/invitations\/csv(?:\.(?<format>[^\/.?]+))?\Z/}>}
Я хочу file
для отображения на params[:csv]
. Почему grape
интерпретирует параметры таким образом? Что я делаю не так?
Endpoint Декларация:
desc "Invite via CSV"
params do
optional :csv, type: Rack::Multipart::UploadedFile, desc: 'csv containing users to be invited'
end
post '/csv' do
binding.pry # here is where I got the above grape params
# ...
end
Как заявляют ваши виноградные ресурсы? пожалуйста, предоставьте больше информации о своем приложении, чтобы мы могли вам помочь. –
@FabianoArruda добавил объявление конечной точки – Derek