Is there a django app that provides a file chooser for the files on the server?

2.7k views Asked by At

I need a component that's a browser-based file browser, and I expect some django app to currently provide this. Is there such a thing?

The full story:

I'm building a django app that is used for testing. I want to use it to serve files (and strings, and etc.) and attach custom headers to it.

Currently, I have a model FileSource which has a single file_path field, which is of type django.db.models.FileField.

When creating a FileSource from the admin, the user has a nice file upload dialog, and when saving, the file he chose, is saved on the server (in a really weird location, inside the directory where django is installed, or something weird like that, because i didn't customize the storage, nor will it help me in any way)

My problem: I only want to use the file dialog for the user to select a full path on the server. The file that the user chose must be only referenced, not copied (like currently), and it must reside on the server. The server must thus be able to list the files it has, so i basically need a little browser-based file-browser.

At that point, I expect to be able to save a full path in my DB, and then I'll be able to access that file and serve it (together with whatever custom headers the user will chose from my app).

Currently, as you might know, the browsers always lie about the full path of the file. Chromium appends "C:\fakepath" to the file name, so I need support of the backend to accomplish this.

Also, I checked out django-filebrowser and django-filer and from what I understood, they weren't built for this. If I'm wrong, a little assistence in configuring them would be awesome.

1

There are 1 answers

0
Brandon Taylor On

You can use a FilePathField for that. It won't upload a file, but rather allow you to choose a pre-existing file. A caveat is that you can only use one directory. If you need multiple directories, then you'd need do go with something like django-filer.