AnsPress_Uploader::image_upload()
Description #
Ajax callback for ap_image_upload. Process image_upload form.
Source #
File: includes/upload.php
public static function image_upload() {
$form = anspress()->get_form( 'image_upload' );
// Check if user have permission to upload tem image.
if ( ! ap_user_can_upload() ) {
ap_send_json(
array(
'success' => false,
'snackbar' => array(
'message' => __( 'Sorry! you do not have permission to upload image.', 'anspress-question-answer' ),
),
)
);
}
// Nonce check.
if ( ! $form->is_submitted() ) {
ap_ajax_json( 'something_wrong' );
}
$image_for = ap_sanitize_unslash( 'image_for', 'r' );
$values = $form->get_values();
// Check for errors.
if ( $form->have_errors() ) {
ap_send_json(
array(
'success' => false,
'snackbar' => array(
'message' => __( 'Unable to upload image(s). Please check errors.', 'anspress-question-answer' ),
),
'form_errors' => $form->errors,
'fields_errors' => $form->get_fields_errors(),
)
);
}
$field = $form->find( 'image' );
// Call save.
$files = $field->save_cb();
$new_arr = array();
// Add a property to check if image or not.
if ( ! empty( $files ) ) {
$all_possible_images_ext = array( 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'svg', 'webp' );
foreach ( $files as $file_basename => $file_url ) {
// Get file extension from file name.
$ext = pathinfo( $file_basename, PATHINFO_EXTENSION );
$new_arr[ $file_basename ] = array(
'ext' => $ext,
'filename' => $file_basename,
'is_image' => in_array( $ext, $all_possible_images_ext, true ),
'url' => $file_url,
);
}
$files = $new_arr;
}
$res = array(
'success' => true,
'action' => 'ap_image_upload',
'image_for' => $image_for,
'snackbar' => array( 'message' => __( 'Successfully uploaded image', 'anspress-question-answer' ) ),
'files' => $files,
);
// Send response.
if ( is_array( $res ) ) {
ap_send_json( $res );
}
ap_ajax_json( 'something_wrong' );
}
Expand full source code Collapse full source code View on GitHub: includes/upload.php:192
Add your comment