回答編集履歴

3

2018/03/05 19:16

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -52,15 +52,15 @@
52
52
 
53
53
  *
54
54
 
55
- * @param string $attribute
55
+ * @param string $attribute
56
56
 
57
- * @param mixed $value
57
+ * @param \Symfony\Component\HttpFoundation\File\UploadedFile $value
58
58
 
59
59
  * @return bool
60
60
 
61
61
  */
62
62
 
63
- public function validateSafeFilename($attribute, $value)
63
+ public function validateSafeFilename($attribute, \Symfony\Component\HttpFoundation\File\UploadedFile $value)
64
64
 
65
65
  {
66
66
 

2

バリデーションルールを定義

2018/03/05 19:16

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -1,3 +1,73 @@
1
1
  拡張子で`.`が入っている場合絶対に引っかかると思いますが,その点は大丈夫ですか?
2
2
 
3
+
4
+
5
+ ---
6
+
7
+
8
+
3
- あと,ここに書いてもファイル名のバリデーションにはならないと思います…)
9
+ あと,ここに書いてもファイル名のバリデーションにはならないと思います
10
+
11
+
12
+
13
+ [Laravel でカスタムバリデーションとそのテスト - Qiita](https://qiita.com/komatzz/items/c64c83a004b7f2c63ce6)
14
+
15
+
16
+
17
+ こちらを参考にカスタムバリデーションルールを定義してください。
18
+
19
+
20
+
21
+ ```php
22
+
23
+ class CustomValidator extends \Illuminate\Validation\Validator
24
+
25
+ {
26
+
27
+ /**
28
+
29
+ * The validation rules that may be applied to files.
30
+
31
+ *
32
+
33
+ * @var array
34
+
35
+ */
36
+
37
+ protected $fileRules = [
38
+
39
+ 'File', 'Image', 'Mimes', 'Mimetypes', 'Min',
40
+
41
+ 'Max', 'Size', 'Between', 'Dimensions',
42
+
43
+ 'SafeFilename',
44
+
45
+ ];
46
+
47
+
48
+
49
+ /**
50
+
51
+ * Validate the given file has safe filename.
52
+
53
+ *
54
+
55
+ * @param string $attribute
56
+
57
+ * @param mixed $value
58
+
59
+ * @return bool
60
+
61
+ */
62
+
63
+ public function validateSafeFilename($attribute, $value)
64
+
65
+ {
66
+
67
+ return preg_match('/\A(?!.)[\w.-]++(?<!.)\z/', $value->getClientOriginalName());
68
+
69
+ }
70
+
71
+ }
72
+
73
+ ```

1

追記

2018/03/05 19:13

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -1 +1,3 @@
1
1
  拡張子で`.`が入っている場合絶対に引っかかると思いますが,その点は大丈夫ですか?
2
+
3
+ (あと,ここに書いてもファイル名のバリデーションにはならないと思います…)