Laravel Multiple Validator错误错误消息

时间:2015-08-10 06:34:54

标签: php laravel laravel-4

问题:当上传的文件超过5000kb时,验证者会返回“所需的”文件。消息而不是' max'信息。为什么?

$file = (Input::file('inputName'));
$fileValidator = Validator::make(
   array('Field Name' => $file),
   array('Field Name' => 'required|max:5000|mimes:jpeg,png,bmp')
);

if($fileValidator->fails()){
   return $fileValidator->errors()->all(':message');
}

更新:出现此问题尤其是* .psd文件'验证

更新2:当我var_dump($ file)时,我可以看到;

object(Symfony\Component\HttpFoundation\File\UploadedFile)#9 (7) {
  ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  bool(false)
  ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  string(52) "4-47970_rsasecurityanalyticsevolutionofsiemebook.pdf"
  ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  string(24) "application/octet-stream"
  ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  int(0)
  ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  int(1)
  ["pathName":"SplFileInfo":private]=>
  string(0) ""
  ["fileName":"SplFileInfo":private]=>
  string(0) ""
}

如您所见,pathName和fileName看起来为null。这就是为什么laravel返回所需信息的原因。这是新问题:为什么fileName为null?

1 个答案:

答案 0 :(得分:4)

当您上传超过允许大小的文件(最大帖子大小和最大上传大小)时,php不会将其发送到服务器,这就是为什么您的代码没有获取文件并且出现所需的错误。< / p>

转到您的php.ini并增加最大上传和最大帖子大小的限制。这应该可以解决你的问题。

你也可以通过php设置这些:

ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');

或者你可以编辑你的php.ini文件:

post_max_size = 64M
upload_max_filesize = 64M