The HTML5 specification allows multiple files to be uploaded at once via <input type="file", ..., multiple="multiple">
. Is there a way to take advantage of this with the Rook R package?
Here's my attempt, but it seems to only show one of the selected files:
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)
The spec isn't supported fully yet; I just tried on Chrome 12.0.742.100 and the browser interface doesn't even allow one to choose multiple files.
To upload multiple files you will want to create multiple input elements like so:
<input type="file" name="file1">...
<input type="file" name="file2">...
...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With