异步文件上传后,从请求对象中删除Illuminate \ Http \ UploadedFile

时间:2019-07-23 01:16:32

标签: laravel-5

我有一个VueJs表单可以上传文件。验证由Laravel后端处理。我遇到的问题是Illuminate\Http\UploadedFile没有从后续请求的请求对象中删除,因此文件验证不起作用。

我正在尝试使用$request->replace([])重设请求参数,但不适用于上传的文件。

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

成功上传:

[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,
  )),
)  

在后续请求中未选择任何文件时,文件对象仍然存在。

[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,
  )),
)

如何删除文件以供后续上传?

1 个答案:

答案 0 :(得分:0)

事实证明,提交后该文件未在Vue组件中清除。

相关问题