简体   繁体   中英

Check for file extension JS

I have some handy code which checks the file extension of a file for me and attaches an image depending on the result.

If the extension doesn't match any of the ones I have listed, I want to attach a generic 'Unknown' image. What could I enter into the case to accomplish this?

    function get_extension(file_name) {
        return file_name.split('.').pop().toLowerCase();
    }

    function check_file_type(file) { 
        switch(get_extension(file)) {
            //if .jpg/.gif/.png do something
            case 'jpg': case 'gif': case 'png':
                return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_image.png')}';
                break;
            //if .zip/.rar do something else
            case 'zip': case 'rar':
                return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_zip.png')}';
                break;      
            //if .pdf do something else
            case 'pdf': case 'pptx':
                return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_pdf.png')}';
                break;
            //if .docx do something else
            case 'docx':
                return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_word.png')}';
                break;
            //if unknown do something else
            case 'WHAT DO I DO HERE' <-- ???
                return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_other.png')}';
                break;
        }
    }

Any suggestions?

Use default:

    switch(get_extension(file)) {
        //if .jpg/.gif/.png do something
        case 'jpg': case 'gif': case 'png':
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_image.png')}';
            break;
        //if .zip/.rar do something else
        case 'zip': case 'rar':
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_zip.png')}';
            break;      
        //if .pdf do something else
        case 'pdf': case 'pptx':
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_pdf.png')}';
            break;
        //if .docx do something else
        case 'docx':
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_word.png')}';
            break;
        //if unknown do something else
        default:
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_other.png')}';
            break;
    }

You wouldn't use a case if nothing matches, you would use default. It would look like:

function get_extension(file_name) {
    return file_name.split('.').pop().toLowerCase();
}

function check_file_type(file) { 
    switch(get_extension(file)) {
        //if .jpg/.gif/.png do something
        case 'jpg': case 'gif': case 'png':
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_image.png')}';
            break;
        //if .zip/.rar do something else
        case 'zip': case 'rar':
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_zip.png')}';
            break;      
        //if .pdf do something else
        case 'pdf': case 'pptx':
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_pdf.png')}';
            break;
        //if .docx do something else
        case 'docx':
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_word.png')}';
            break;
        //if unknown do something else
        default:
            return '{!URLFOR($Resource.Common, 'images/filetypes/doctype_other.png')}';
            break;
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM