2017-04-13 101 views
0

我不知道它是否是检查插入恶意代码有用我验证上传的文件名,但我想不过来实现它。如何使用Lavavel标准功能

我想检查文件名的字符串一些Laravel验证,没有PHP specifc功能,如果这是可能的。

这里是我的代码片段:

$valiadateResult = Validator::make 
     (
      $inReq->all(), 
      [ 
       'atitle' => 'required', 
       'keyw' => 'max:255|alpha_num', 
       'gkeyw' => 'max:255|alpha_num', 
       'up' => 'nullable|alpha_num|mimes:jpeg,jpg,png,gif,mp3,pdf|max:100000', 
       'intro' => 'max:255', 
       'full' => 'max:2000', 
      ] 
     ); 

所以up部分文件验证,但它不检查文件名。 我尝试过,但alpa_num在这种情况下不起作用。

那么,有没有这种使用一些Laravel功能的解决方案?或者我应该自己使用一些PHP逻辑来验证?或者你认为没有必要验证这种输入?

+0

正常发展的文件名称并不重要,它被改名,然后保存。 – lewis4u

+0

好点,谢谢:) –

回答

0

您需要在输入和规则中添加另一个名为filename的文件。

$filename = $request->file('up')->getClientOriginalName(); 
$allInput = $inReq->all(); 
$allInput['filename'] = $filename; 
$valiadateResult = Validator::make 
     (
      $allInput, 
      [ 
       'atitle' => 'required', 
       'keyw' => 'max:255|alpha_num', 
       'gkeyw' => 'max:255|alpha_num', 
       'up' => 'nullable|alpha_num|mimes:jpeg,jpg,png,gif,mp3,pdf|max:100000', 
       'filename' => 'alpha_num', 
       'intro' => 'max:255', 
       'full' => 'max:2000', 
      ] 
     ); 

,你会得到错误与文件名

+1

谢谢,它几乎工作:) 只是'alpha_num'剂量不喜欢它,但与模式的正则表达式,它的工作正常 –

0

此外,您可以使用“文件”验证。

下验证的字段必须是成功上传的文件。

'up' => 'file|nullable|alpha_num|mimes:jpeg,jpg,png,gif,mp3,pdf|max:100000', 
+0

感谢你的帮助,但没有奏效,在'alpha_num'抛出一个错误,一个如果它改变'regex'使其误差太大。 –