lundi 22 juillet 2019

Remove Illuminate\Http\UploadedFile from Request object after asynchronous file upload

I have a VueJs form that uploads files. Validation is being handled by the Laravel back-end. The problem I have is that the Illuminate\Http\UploadedFile is not being removed from the request object for subsequent requests, and as such the validation for files is not working.

I am trying to reset the request parameters with $request->replace([]) but it does not work for the uploaded file.

app('log')->debug('Before replace');
app('log')->debug($request);
$request->replace([]);
app('log')->debug('After replace');
app('log')->debug($request);

Successful upload:

[2019-07-23 11:01:06] local.DEBUG: Before replace  
[2019-07-23 11:01:06] local.DEBUG: array (
  'name' => 'a',
  'description' => 'a',
  'resourceType' => 'sample',
  'applicationTypes' => 
  array (
    0 => '1',
  ),
  'authorities' => 
  array (
    0 => '1',
  ),
  'file' => 
  Illuminate\Http\UploadedFile::__set_state(array(
     'test' => false,
     'originalName' => 'blueprint.pdf',
     'mimeType' => 'application/pdf',
     'error' => 0,
     'hashName' => NULL,
  )),
)  

When no file has been selected in subsequent requests, the file object is still present.

[2019-07-23 11:01:06] local.DEBUG: After replace  
[2019-07-23 11:01:06] local.DEBUG: array (
  'file' => 
  Illuminate\Http\UploadedFile::__set_state(array(
     'test' => false,
     'originalName' => 'blueprint.pdf',
     'mimeType' => 'application/pdf',
     'error' => 0,
     'hashName' => NULL,
  )),
)


How can I remove the file for subsequent uploads?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire