sai*_*can 5 php laravel laravel-4
问题:当上传的文件超过 5000kb 时,验证器返回 'required' 消息而不是 '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');
}
Run Code Online (Sandbox Code Playgroud)
更新:这个问题尤其发生在 *.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) ""
}
Run Code Online (Sandbox Code Playgroud)
如您所见, pathName 和 fileName 看起来为空。所以这就是为什么 laravel 返回所需的消息。这是新问题:为什么 fileName 为 null ?
当您上传的文件超过允许的大小(最大帖子大小和最大上传大小)时,php 不会将其发送到服务器,这就是为什么您的代码无法获取文件并通过 required 错误。
转到 php.ini 并增加最大上传和最大帖子大小的限制。这应该可以解决你的问题。
您还可以通过 php 设置这些:
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
Run Code Online (Sandbox Code Playgroud)
或者您可以编辑 php.ini 文件:
post_max_size = 64M
upload_max_filesize = 64M
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
531 次 |
| 最近记录: |