ajaxfirefoxdrag-and-dropfileapiajax-upload

How to distinguish folders and files drag and drop Ajax upload in FireFox


I can not find the way to distinguish between folders and files drop in FireFox Ajax. Looks like there are no signs in FireFox FileAPI that can tell if this is a folder or a file.

However I see that Google docs somehow can distinguish between folders and files drop. It does not relie on extensions or file length, files without extensions are uploaded correctly, as well as 0-lenth files are uploaded with no problem.

How do I distinguish between files and folders during D&D in FF?


Solution

  • This blog post suggests trying to read the file and reacting to the exception that will be thrown if it is a folder.

    if (!f.type && f.size%4096 == 0 && f.size <= 102400) {
        try {
            reader = new FileReader();
            reader.readAsBinaryString(f);
        } catch (NS_ERROR_FILE_ACCESS_DENIED) {
        //file is a directory
        }
    }
    

    In general: First assume the folder is a file and treat it like one, at some point things will go wrong and you can react to that.