Что вы пробовали? Согласно документации request$get_file()
метод возвращает необработанный вектор - двоичное представление файла. Мне не известны пакеты / функции R, которые позволяют читать файл xls / xlsx напрямую из необработанного вектора (вероятно, такие функции существуют, я просто не знаю).
Здесь вы можете записать тело в файл и затем прочитать его обычным способом, а затем:
library(RestRserve)
library(readxl)
app = Application$new()
app$add_post(
path = "/xls",
FUN = function(request, response) {
fl = tempfile(fileext = '.xlsx')
xls = request$get_file("xls")
# need to drop attributes as writeBin()
# can't write object with attributes
attributes(xls) = NULL
writeBin(xls, fl)
xls = readxl::read_excel(fl, sheet = 1)
response$set_body("done")
}
)
backend = BackendRserve$new()
backend$start(app, http_port = 65080)
Также учтите, что аргумент content_type
предназначен для кодирования ответа, а не для декодирования запроса.