I couldn't get the image upload to work because the thickbox script hadn't been included. It turns out check_field_upload() uses wp_enqueue_scripts() to add the required scripts, but this doesn't seem to work for admin pages. Changing it to admin_enqueue_scripts() seems to have fixed this.
I couldn't get the image upload to work because the thickbox script hadn't been included. It turns out check_field_upload() uses wp_enqueue_scripts() to add the required scripts, but this doesn't seem to work for admin pages. Changing it to admin_enqueue_scripts() seems to have fixed this.