Laravel文件上传为空(但它在var_dump()中)

时间:2014-12-28 10:04:34

标签: laravel laravel-4

这个问题最初在搜索时似乎很常见,但大多数答案都与打开的表单中缺少'files' => true'有关。

所以我的表单有一个典型的图片上传。如果我不首先检查输入,那么一切正常:

    $logo = Input::file('logo');
    $logoName = time() . $logo->getClientOriginalName();
    $logo->move(public_path() . '/logos/', $logoName);
    $user->logo = $logoName;
    $user->save();

没问题。图像和文件名都上传/保存。但是,当我首先检查徽标是否存在时,它会跳过,因为徽标显然是null

if(Input::has('logo')
{
    $logoName = time() . $logo->getClientOriginalName();
    $logo->move(public_path() . '/logos/', $logoName);
    $user->logo = $logoName;
    $user->save();
}

奇怪的是,当我死/转时它显示为null尽管还显示徽标是这样的:

dd(Input::all(), Input::has('logo'));

返回:

array (size=4)
  '_token' => string 'pVuQrFqOPNPJgIhU3kUxRuQQqjsqMrBu5LOhLxJH' (length=40)
  'username' => string 'tinak' (length=5)
  'location' => string 'Kuala Lumpur' (length=12)
  'logo' => 
    object(Symfony\Component\HttpFoundation\File\UploadedFile)[9]
      private 'test' => boolean false
      private 'originalName' => string 'logo8.png' (length=9)
      private 'mimeType' => string 'image/png' (length=9)
      private 'size' => int 14315
      private 'error' => int 0
boolean false

1 个答案:

答案 0 :(得分:0)

您可以尝试使用hasFile检查文件是否已上传。

if (Input::hasFile('logo'))
{
    //
}

Docs - Requests - Files