开发者

Upload multiple files with Rook

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$开发者_StackOverflow社区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">...
...
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜