问题:当上传的文件超过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?
答案 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