Repository: gradio-app/gradio

Issue:
The `interactive` parameter in `gr.FileExplorer` has no effect. It should either be correctly documented or the feature should be added
- [X] I have searched to see if a similar issue already exists.


### Is your feature request related to a problem? 

 interactive -  if True, will allow users to upload a file; if False, can only be used to display files. If not provided, this is inferred based on whether the component is used as an input or output.

This functionality apparently does nothing. I used like this:

```python
gr.FileExplorer(root='./voices', height=400, interactive=True, label="voices available", file_count="multiple", glob="**/*.*", ignore_glob="*.db,")
```

Either it should be documented correctly, or the ability to upload files should be added:

This functionality could be like google colab file explorer, enabling users to handle their files without need direct access to server.
And also could allow see empty folders on root folder I defined

![image](https://github.com/gradio-app/gradio/assets/11916455/747cf85c-5000-4b46-b5fe-92046f654641)





Discussion:
I'm torn on this, making it part of the component would be a much slicker UI/ UX for users but also we need to sensible defaults so users don't accidentally give everyone access to the machine. This can technically be accomplished without adding these features to the FileExplorer but the UI/UX won't be as nice.
@pngwn I believe root param may handle access to files. the way it is today it only depends on the developer make a mistake giving access to wrong path. Adding buttom to upload file only for root folder defined on param and give an option to limit extension types may protect mistakes.


Resolving patch:
diff --git a/gradio/components/file_explorer.py b/gradio/components/file_explorer.py
--- a/gradio/components/file_explorer.py
+++ b/gradio/components/file_explorer.py
@@ -66,7 +66,7 @@ def __init__(
             scale: relative size compared to adjacent Components. For example if Components A and B are in a Row, and A has scale=2, and B has scale=1, A will be twice as wide as B. Should be an integer. scale applies in Rows, and to top-level Components in Blocks where fill_height=True.
             min_width: minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first.
             height: The maximum height of the file component, specified in pixels if a number is passed, or in CSS units if a string is passed. If more files are uploaded than can fit in the height, a scrollbar will appear.
-            interactive: if True, will allow users to upload a file; if False, can only be used to display files. If not provided, this is inferred based on whether the component is used as an input or output.
+            interactive: if True, will allow users to select file(s); if False, will only display files. If not provided, this is inferred based on whether the component is used as an input or output.
             visible: If False, component will be hidden.
             elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles.
             elem_classes: An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles.


Test patch: