This package extends the functionality of shiny by providing an API
for client side access to the server file system. As many shiny apps are
run locally this is equivalent to accessing the filesystem of the users
own computer, without the overhead of copying files to temporary
locations that is tied to the use of fileInput()
.
The package can be installed from CRAN using
install.packages('shinyFiles')
.
The package is designed to make it extremely easy to implement file system access. An example of implementing a file chooser would be:
In the ui.R file
shinyUI(bootstrapPage(
shinyFilesButton('files', label='File select', title='Please select a file', multiple=FALSE)
))
In the server.R file
shinyServer(function(input, output) {
shinyFileChoose(input, 'files', root=c(root='.'), filetypes=c('', 'txt'))
})
It is equally simple to implement directly in your custom html file
as it only requires a single <button>
element. The
equivalent of the above in raw html would be:
<button id="files" type="button" class="shinyFiles btn" data-title="Please select a file" data-selecttype="single">
File select</button>
For an overview of all the different modules try the
shinyFilesExample()
function in the package. It gives an
overview of all the necessary code, along with descriptions and working
examples.