Загрузить несколько файлов с Rook
Спецификация HTML5 позволяет загружать сразу несколько файлов через <input type="file", ..., multiple="multiple">
, Есть ли способ воспользоваться этим с пакетом Rook R?
Вот моя попытка, но она показывает только один из выбранных файлов:
library(Rook)
app <- function(env) {
req <- Rook::Request$new(env)
res <- Rook::Response$new()
res$write(
'<html><body>
Select files:
<form method="POST" enctype="multipart/form-data">
<input type="file" name="data" multiple="multiple">
<input type="submit" name="Upload">
</form>
</body></html>')
if (!is.null(req$POST())){
data <- req$POST()[['data']]
res$write("<pre>")
res$write(paste(capture.output(req$POST(),file=NULL),collapse='\n'))
res$write("</pre>")
res$write("<pre>")
res$write(paste(capture.output(data$filename,file=NULL),collapse='\n'))
res$write("</pre>")
}
res$finish()
}
s <- Rhttpd$new()
s$add(app=RhttpdApp$new(name="app", app=app))
s$start(listen="127.0.0.1", quiet=FALSE)
s$browse(1)
#s$stop(); s$remove(all=TRUE); rm(s)
1 ответ
Решение
Спецификация еще не полностью поддерживается; Я только что попробовал Chrome 12.0.742.100, и интерфейс браузера даже не позволяет выбрать несколько файлов.
Чтобы загрузить несколько файлов, вам нужно создать несколько элементов ввода, например:
<input type="file" name="file1">...
<input type="file" name="file2">...
...