Validate::validate_upload( object $field )
Description #
Validate an upload field.
Parameters #
- $fieldobject (Required) Instance of @see
AP_Fieldobject.
Source #
File: lib/class-validate.php
public static function validate_upload( $field ) {
$args = $field->get( 'upload_options' );
$value = $field->unsafe_value();
if ( ! empty( $value ) ) {
// Check if user have permission to upload files.
if ( ! ap_user_can_upload() ) {
$field->add_error( 'deny-upload', __( 'You are not allowed to upload file(s)', 'anspress-question-answer' ) );
}
$is_numeric = wp_is_numeric_array( $value );
if (
( false === $args['multiple'] && $is_numeric ) ||
( true === $args['multiple'] && count( $value ) > $args['max_files'] )
) {
$field->add_error(
'max-uploads',
sprintf(
// Translators: %1$d contain maximum files user can upload, %2$s contain label of field.
__( 'You cannot upload more than %1$d file in field %2$s', 'anspress-question-answer' ),
$args['max_files'],
$field->get( 'label' )
)
);
}
// Check if allowed mimes.
$valid_mimes = self::file_valid_type( $field );
if ( false !== $valid_mimes ) {
$field->add_error( 'mimes-not-allowed', __( 'File type is not allowed to upload.', 'anspress-question-answer' ) );
}
// Check if file have any error.
$error = self::file_have_error( $field );
if ( false !== $error ) {
$field->add_error( 'upload-file-error', $error );
}
// Check file size.
$file_size = self::file_size_error( $field );
if ( false !== $file_size ) {
$field->add_error(
'max-size-upload',
sprintf(
// Translators: %s contain maximum file size user can upload.
__( 'File(s) size is bigger than %s MB', 'anspress-question-answer' ),
round( ap_opt( 'max_upload_size' ) / ( 1024 * 1024 ), 2 )
)
);
}
}
}
Expand full source code Collapse full source code View on GitHub: lib/class-validate.php:709
Add your comment