fazlurr
6/10/2015 - 11:06 AM

WordPress Upload File Snippets, and Update ACF Field

WordPress Upload File Snippets, and Update ACF Field

// Handle upload file
if ( ! function_exists( 'wp_handle_upload' ) ) {
	require_once( ABSPATH . 'wp-admin/includes/file.php' );
}

$uploadedfile = $_FILES['upload_file'];

$upload_overrides = array( 'test_form' => false );

$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );

if ( $movefile && !isset( $movefile['error'] ) ) {
	// echo "File is valid, and was successfully uploaded.\n";
	// var_dump( $movefile);
	// $filename should be the path to a file in the upload directory.
	$filename = $movefile['file'];

	// The ID of the post this attachment is for.
	$parent_post_id = $applicant_id;

	// Check the type of file. We'll use this as the 'post_mime_type'.
	$filetype = wp_check_filetype( basename( $filename ), null );

	// Get the path to the upload directory.
	$wp_upload_dir = wp_upload_dir();

	// Prepare an array of post data for the attachment.
	$attachment = array(
		'guid'           => $wp_upload_dir['url'] . '/' . basename( $filename ), 
		'post_mime_type' => $filetype['type'],
		'post_title'     => preg_replace( '/\.[^.]+$/', '', basename( $filename ) ),
		'post_content'   => '',
		'post_status'    => 'inherit'
	);

	// Insert the attachment.
	$attach_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );

	// Make sure that this file is included, as wp_generate_attachment_metadata() depends on it.
	require_once( ABSPATH . 'wp-admin/includes/image.php' );

	// Generate the metadata for the attachment, and update the database record.
	$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
	wp_update_attachment_metadata( $attach_id, $attach_data );

	// Update File Field
	update_field('upload_file', $attach_id, $post_id);

} else {
	/**
	 * Error generated by _wp_handle_upload()
	 * @see _wp_handle_upload() in wp-admin/includes/file.php
	 */
	// echo $movefile['error'];
}