Загрузить несколько файлов с Rook - PullRequest
6 голосов
/ 26 июня 2011

Спецификация HTML5 позволяет загружать сразу несколько файлов через <input type="file", ..., multiple="multiple">.Есть ли способ воспользоваться этим с помощью пакета Rook R?

Вот моя попытка, но, похоже, отображается только один из выбранных файлов:

<code>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("
") res $ write ("
")
    res$write(paste(capture.output(data$filename,file=NULL),collapse='\n'))
    res$write("
")} 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) </code>

1 Ответ

4 голосов
/ 27 июня 2011

Спецификация еще не полностью поддерживается;Я только что попробовал Chrome 12.0.742.100, и интерфейс браузера даже не позволяет выбрать несколько файлов.

Чтобы загрузить несколько файлов, вам нужно создать несколько элементов ввода, например:

<input type="file" name="file1">...
<input type="file" name="file2">...
...
...