teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

7

コード修正

2017/12/08 04:47

投稿

退会済みユーザー
answer CHANGED
@@ -55,7 +55,7 @@
55
55
  public function add(Request $request)
56
56
  {
57
57
  $this->validate($request, [
58
- 'file' => 'image|max:3000',
58
+ 'file' => 'required|image|max:3000',
59
59
  ]);
60
60
 
61
61
  if ($request->file('file')->isValid())

6

コード修正

2017/12/08 04:47

投稿

退会済みユーザー
answer CHANGED
@@ -1,6 +1,12 @@
1
1
  このコードで5.4で動くことを確認しました。
2
2
 
3
3
  ```ここに言語を入力
4
+ route
5
+ Route::get('/', 'UploadController@index');
6
+ Route::post('/add', 'UploadController@add')->name('add');
7
+ ```
8
+
9
+ ```ここに言語を入力
4
10
  viewファイル
5
11
 
6
12
  <!DOCTYPE html>
@@ -19,7 +25,7 @@
19
25
  @endif
20
26
  <!-- エラーメッセージ表示部分-->
21
27
 
22
- <form action="" method="post" enctype="multipart/form-data">
28
+ <form action="{{route('add')}}" method="post" enctype="multipart/form-data">
23
29
  {{ csrf_field() }}
24
30
  <input type="file" name="file">
25
31
  <input type="submit">

5

コード修正

2017/12/08 04:18

投稿

退会済みユーザー
answer CHANGED
@@ -1,17 +1,66 @@
1
+ このコードで5.4で動くことを確認しました。
2
+
1
3
  ```ここに言語を入力
2
- // バリデーションール
4
+ viewファイ
3
- $this->validate($request, [
4
- 'datafile' => 'image|max:3000',
5
- ]);
6
5
 
6
+ <!DOCTYPE html>
7
+ <html>
8
+ <head>
9
+ <title>sample</title>
10
+ <meta charset="utf-8">
11
+ </head>
12
+ <body>
13
+
14
+ <!-- エラーメッセージ表示部分-->
15
+ @if ($errors->any())
16
+ @foreach ($errors->all() as $error)
17
+ <p>{{ $error }}</p>
18
+ @endforeach
19
+ @endif
20
+ <!-- エラーメッセージ表示部分-->
21
+
22
+ <form action="" method="post" enctype="multipart/form-data">
23
+ {{ csrf_field() }}
7
- if ($request->file('datafile')->isValid())
24
+ <input type="file" name="file">
25
+ <input type="submit">
26
+ </form>
27
+ </body>
28
+ </html>
29
+ ```
30
+
31
+ ```ここに言語を入力
32
+ コントローラー
33
+
34
+ <?php
35
+
36
+ namespace App\Http\Controllers;
37
+
38
+ use Illuminate\Http\Request;
39
+
40
+ class TestController extends Controller
8
41
  {
42
+ //view
43
+ public function index()
44
+ {
45
+ return view('index');
46
+ }
47
+
48
+ //postした後の処理
49
+ public function add(Request $request)
50
+ {
51
+ $this->validate($request, [
52
+ 'file' => 'image|max:3000',
53
+ ]);
54
+
55
+ if ($request->file('file')->isValid())
56
+ {
9
- //アップロード成功時の処理
57
+ //アップロード成功時の処理
58
+ }
59
+ }
10
60
  }
11
- else
12
- {
13
- //失敗時の処理
14
- }
15
61
  ```
16
62
 
63
+ エラーが出た場合は元のviewファイルにリダイレクトし、エラーメッセージを表示してくれます。エラーメッセージを変えたい場合は、resources/lang/en/validation.phpを直接いじるか、追加するなりで対応できます。詳しくはここで解説してます。
64
+ [https://qiita.com/komatzz/items/422bcba9847ca3a79fe9](https://qiita.com/komatzz/items/422bcba9847ca3a79fe9)
65
+
17
- んな感じですかね。5.3だとこで動ます。5.4は未検証ので動かなかったらすません・・・
66
+ 一度これに合わせてコードを書きなおしててください。

4

コード修正

2017/12/08 01:02

投稿

退会済みユーザー
answer CHANGED
@@ -1,7 +1,7 @@
1
1
  ```ここに言語を入力
2
2
  // バリデーションルール
3
3
  $this->validate($request, [
4
- 'file' => 'image|max:3000',
4
+ 'datafile' => 'image|max:3000',
5
5
  ]);
6
6
 
7
7
  if ($request->file('datafile')->isValid())

3

コード修正

2017/12/07 09:17

投稿

退会済みユーザー
answer CHANGED
@@ -4,7 +4,7 @@
4
4
  'file' => 'image|max:3000',
5
5
  ]);
6
6
 
7
- if ($request->file('file')->isValid())
7
+ if ($request->file('datafile')->isValid())
8
8
  {
9
9
  //アップロード成功時の処理
10
10
  }

2

プログラムの修正

2017/12/07 08:31

投稿

退会済みユーザー
answer CHANGED
@@ -4,7 +4,7 @@
4
4
  'file' => 'image|max:3000',
5
5
  ]);
6
6
 
7
- if ($request->file('file')->isValid([]))
7
+ if ($request->file('file')->isValid())
8
8
  {
9
9
  //アップロード成功時の処理
10
10
  }

1

追記

2017/12/07 07:55

投稿

退会済みユーザー
answer CHANGED
@@ -14,4 +14,4 @@
14
14
  }
15
15
  ```
16
16
 
17
- こんな感じですかね。
17
+ こんな感じですかね。5.3だとこれで動きます。5.4は未検証なので動かなかったらすみません・・・