validform

ValidForm Builder file type validation


Does anybody know how to validate the file type input.

I have modified (hard coded) the class.vf_file.php input.

$strOutput .= "<input accept=\".pdf,.doc,.docx\"     etc----/>\n";

This helps with Google Chrome, but Safari, Firefox ignore the modifications

Preventing users to submit the form if any other type of file is detected would be the ideal solution.

Thank you


Solution

  • I would recommend using a third party file uploading library like Plupload. We always use ValidForm Builder together with Plupload; works like a charm.

    However you can use the meta array to implement custom attributes in the <input> tag without having to hardcode anything:

    $objForm->addField(
        "upload-document", 
        "Upload Document", 
        ValidForm::VFORM_FILE,
        array(),  // Validation array
        array(),  // Error handling array
        array(    // Meta array
            "fielddata-extensions" => "pdf,doc,docx"
        )
    );
    

    By prefixing meta keys with the 'field' prefix, you add that specific meta to the <input> field itself instead of it's wrapping <div class='vf__optional'></div>

    The above example will output:

    <div class="vf__optional">
        <label for="upload-image">Upload Image</label>
        <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
        <input type="file" value="" name="upload-image[]" id="upload-image" class="vf__file" data-extensions="pdf,doc,docx">
    </div>
    

    So using a combination of meta and a third party file upload handler, you can actually to pretty cool stuff.

    That being said -- I must admit that the file upload field didn't get as much attention as the other field types lately.