I'm writing a block plugin that uses the form API to allow users to edit its settings, and then output them into a template.

I'm currently using

    <?php
    
    /**
     * @file
     * Contains \Drupal\my_plugins\Plugin\Block\InfoWithSideImage.
     */
    
    namespace Drupal\my_plugins\Plugin\Block;
    
    use Drupal\Core\Block\BlockBase;
    use Drupal\Core\Form\FormStateInterface;
    
    /**
     * @Block(
     * id = "infowithsideimage",
     * admin_label = @Translation("Info block beside an image")
     * )
     */
    
    class InfoWithSideImage extends BlockBase {
    	public function blockForm($form, FormStateInterface $form_state) {
    		$form['image'] = array(
    			'#type'          => 'file',
    			'#title'         => $this->t('Image'),
    			'#default_value' => $this->configuration['image_submit'],
    		);
            $form['test'] = array(
                '#type' => 'textfield',
                '#title' => $this->t('Test text field'),
                '#default_value' => $this->configuration['test_submit'],                
            );
    		return $form;
    	}
    	public function blockSubmit($form, FormStateInterface $form_state) {
    		$this->configuration['image_submit'] = $form_state->getValue('image');
    		$this->configuration['test_submit'] = $form_state->getValue('test');
    	}
    
    	public function build() {
    		return array(
    			'#theme' => 'infowithsideimage',
    			'#image' => $this->configuration['image_submit'],
                '#test' => $this->configuration['test_submit'],
    		);
    	}
    }

The text field works fine, but whenever I try to submit with the file field I get the following error:

> A fatal error occurred: Serialization of Symfony\Component\HttpFoundation\File\UploadedFile is not allowed

Is there something I'm missing? Is it possible to use the form API to allow users to upload files?