This filter is executed before uploading a file (by the File Upload or Post Image fields). It can be used to change the location where uploaded files are stored.


The following would apply to all forms.

add_filter( 'gform_upload_path', 'your_function_name', 10, 2 );

To limit the scope of your function to a specific form, append the form id to the end of the hook name. (format: gform_upload_path_FORMID)

add_filter( 'gform_upload_path_5', 'your_function_name', 10, 2 );


  • $path_info array

    The upload path to be filtered. It is an associative array with two keys which must be specified.

    • $path_info[‘path’] string

      Full physical path to upload folder.

    • $path_info[‘url’] string

      Full URL to upload folder.

  • $form_id integer

    The ID of the form currently being processed.


1. Log the current path

You can use this example with the logging add-on to find out what the current path is before using the next example to change the path.

add_filter( 'gform_upload_path', function ( $path_info, $form_id ) {
    GFCommon::log_debug( "log_upload_path(): path_info for form #{$form_id} => " . print_r( $path_info, true ) );

    return $path_info;
}, 1, 2 );

2. Change the path and url

This example changes the upload path and url for the File Upload field.

add_filter( 'gform_upload_path', 'change_upload_path', 10, 2 );
function change_upload_path( $path_info, $form_id ) {
   $path_info['path'] = '/home/public_html/yourdomainfolder/new/path/';
   $path_info['url'] = '';
   return $path_info;


This code should be placed in the functions.php file of your active theme.

Source Code

This filter is located in GFFormsModel::get_file_upload_path() in forms_model.php