6

HTML5仕様では、を介して複数のファイルを一度にアップロードできます<input type="file", ..., multiple="multiple">Rook Rパッケージでこれを利用する方法はありますか?

これが私の試みですが、選択したファイルの1つしか表示されないようです。

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)
4

1 に答える 1

4

仕様はまだ完全にはサポートされていません。Chrome 12.0.742.100を試してみましたが、ブラウザのインターフェースで複数のファイルを選択することさえできません。

複数のファイルをアップロードするには、次のような複数の入力要素を作成する必要があります。

<input type="file" name="file1">...
<input type="file" name="file2">...
...
于 2011-06-27T15:21:59.900 に答える