Skip Navigation

[Resolved] Restricting File Types on File Upload CRED Field

This thread is resolved. Here is a description of the problem and solution.

Client is using the Forms cred_form_ajax_upload_validate hook to restrict the acceptable file types that can be uploaded for a file custom field, but it is not working, the accepted file types are being rejected.

Their code wrongly defines the file types which do not match the file type reported by the global $_FILES object used for the test (e.g. they are testing for "application/text" instead of "text/plain".

Relevant Documentation:

This support ticket is created 5 years, 5 months ago. There's a good chance that you are reading advice that it now obsolete.

This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 -
- 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 -

Supporter timezone: Europe/London (GMT+01:00)

This topic contains 2 replies, has 2 voices.

Last updated by davidZ-4 5 years, 5 months ago.

Assisted by: Nigel.

fileupload error.PNG

I am trying to: Restricting File Types on File Upload CRED Field

Link to a page where the issue can be seen: hidden link

I expected to see: be able to upload files based on the code below

Instead, I got: error message from generated by the code

I used the code available at and modify it to the following:

//*Validate for csv xsl txt on File Upload
function cred_filetype_validation($error_fields, $form_data)
    $file_types = array('application/csv','application/xls','application/txt');
    // Field data are field values and errors 
    //Run the rest of code for this CRED ONLY and IF the file is upload type and size are set.
        if (in_array($form_data['id'], [386]) && (isset($_FILES['wpcf-u-sngl-portfolio-file']['type']))) {
            //Retrieve file type
            //Validate files uploaded, make sure its PDF file type
            if (!in_array($file_type_uploaded, $file_types) ) {
                //Validation failed,
                // set error message per field
                //Remove wpcf - prefix here!
                $errors['File-Format-Error']='Sorry the file you have uploaded is not of the correct type. Accepted file types: csv, xls, txt';   
    //return result
    return array($fields,$errors);

i modified the code to except csv, xls, and txt file formats
when i try to upload a file with one of the exceptions csv, xls, or txt i still get the error that the file extension is not excepted.

please advise,



Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Try dumping $_FILES to the debug.log to double-check what the correct type is.

When I just tried uploading a txt file, for example, it showed the type as "text/plain".


My issue is resolved now. Thank you!

This ticket is now closed. If you're a Toolset client and need related help, please open a new support ticket.