質問編集履歴

8

ご提示いただいた内容をもとに編集を行いしました。

2017/12/08 03:49

投稿

hidepon
hidepon

スコア206

test CHANGED
File without changes
test CHANGED
@@ -241,3 +241,165 @@
241
241
  (追記2)
242
242
 
243
243
  ご回答内容を反映しました。
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+ (現在の状況)
254
+
255
+ routes/web.php
256
+
257
+ ```
258
+
259
+ Route::get('/', 'UploadController@index');
260
+
261
+ Route::post('/add', 'UploadController@add');
262
+
263
+ ```
264
+
265
+
266
+
267
+ app/Http/Controllers/UploadController.php
268
+
269
+ ```
270
+
271
+ ?php
272
+
273
+
274
+
275
+ namespace App\Http\Controllers;
276
+
277
+
278
+
279
+ use Illuminate\Http\Request;
280
+
281
+
282
+
283
+ class UploadController extends Controller
284
+
285
+ {
286
+
287
+ //view
288
+
289
+ public function index()
290
+
291
+ {
292
+
293
+ return view('index');
294
+
295
+ }
296
+
297
+
298
+
299
+ //postした後の処理
300
+
301
+ public function add(Request $request)
302
+
303
+ {
304
+
305
+ $this->validate($request, [
306
+
307
+ 'file' => 'image|max:3000',
308
+
309
+ ]);
310
+
311
+
312
+
313
+ if ($request->file('file')->isValid())
314
+
315
+ {
316
+
317
+ //アップロード成功時の処理
318
+
319
+ return view('upload_success');
320
+
321
+ }
322
+
323
+ }
324
+
325
+ }
326
+
327
+ ```
328
+
329
+ resource/view/index.blade.php
330
+
331
+ ```
332
+
333
+ <!DOCTYPE html>
334
+
335
+ <html>
336
+
337
+ <head>
338
+
339
+ <title>sample</title>
340
+
341
+ <meta charset="utf-8">
342
+
343
+ </head>
344
+
345
+ <body>
346
+
347
+
348
+
349
+ <!-- エラーメッセージ表示部分-->
350
+
351
+ @if ($errors->any())
352
+
353
+ @foreach ($errors->all() as $error)
354
+
355
+ <p>{{ $error }}</p>
356
+
357
+ @endforeach
358
+
359
+ @endif
360
+
361
+ <!-- エラーメッセージ表示部分-->
362
+
363
+
364
+
365
+ <form action="/add" method="post" enctype="multipart/form-data">
366
+
367
+ {{ csrf_field() }}
368
+
369
+ <input type="file" name="file">
370
+
371
+ <input type="submit">
372
+
373
+ </form>
374
+
375
+ </body>
376
+
377
+ </html>
378
+
379
+ ```
380
+
381
+ resource/view/upload_success.blade.php
382
+
383
+ ```
384
+
385
+ <!DOCTYPE html>
386
+
387
+ <html>
388
+
389
+ <head>
390
+
391
+ <title>sample</title>
392
+
393
+ <meta charset="utf-8">
394
+
395
+ </head>
396
+
397
+ <body>
398
+
399
+ <p>アップロード成功しました</p>
400
+
401
+ </body>
402
+
403
+ </html>
404
+
405
+ ```

7

Controller部分を最新状態に更新しました

2017/12/08 03:49

投稿

hidepon
hidepon

スコア206

test CHANGED
File without changes
test CHANGED
@@ -54,15 +54,15 @@
54
54
 
55
55
  {
56
56
 
57
- // バリデーションルール
58
-
59
57
  $this->validate($request, [
60
58
 
61
- 'file' => 'image|max:3000',
59
+ 'datafile' => 'image|max:3000',
62
60
 
63
61
  ]);
64
62
 
65
- if ($request->file('datafile')->isValid()){
63
+ if ($request->file('datafile')->isValid())
64
+
65
+ {
66
66
 
67
67
  //アップロード成功時の処理
68
68
 
@@ -70,7 +70,7 @@
70
70
 
71
71
  }else{
72
72
 
73
- //失敗時の処理(エラーメッセージをviewに入れる)
73
+ //失敗時の処理
74
74
 
75
75
  return view('upload_error');
76
76
 
@@ -78,6 +78,8 @@
78
78
 
79
79
  }
80
80
 
81
+ }
82
+
81
83
  ```
82
84
 
83
85
 

6

スペルミスがありました

2017/12/07 09:58

投稿

hidepon
hidepon

スコア206

test CHANGED
File without changes
test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  ]);
64
64
 
65
- if ($request->file('adtafile')->isValid()){
65
+ if ($request->file('datafile')->isValid()){
66
66
 
67
67
  //アップロード成功時の処理
68
68
 

5

コメントの消し忘れがありました

2017/12/07 09:03

投稿

hidepon
hidepon

スコア206

test CHANGED
File without changes
test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
  //失敗時の処理(エラーメッセージをviewに入れる)
74
74
 
75
- // return view('upload_error');
75
+ return view('upload_error');
76
76
 
77
77
  }
78
78
 

4

現状のソースを記述しました。

2017/12/07 08:52

投稿

hidepon
hidepon

スコア206

test CHANGED
File without changes
test CHANGED
@@ -62,17 +62,17 @@
62
62
 
63
63
  ]);
64
64
 
65
- if ($request->file('file')->isValid()){
65
+ if ($request->file('adtafile')->isValid()){
66
66
 
67
67
  //アップロード成功時の処理
68
68
 
69
- return redirect('/')->with('message', '成功しました');
69
+ return view('upload_success');
70
70
 
71
71
  }else{
72
72
 
73
73
  //失敗時の処理(エラーメッセージをviewに入れる)
74
74
 
75
- // return redirect('/')->with('message', 'ファイルを確認してください!');
75
+ // return view('upload_error');
76
76
 
77
77
  }
78
78
 
@@ -80,6 +80,8 @@
80
80
 
81
81
  ```
82
82
 
83
+
84
+
83
85
  resource/view/uploads.blade.php
84
86
 
85
87
  ```
@@ -130,6 +132,72 @@
130
132
 
131
133
  ```
132
134
 
135
+ エラー発生
136
+
137
+ resource/view/upload_error
138
+
139
+ ```
140
+
141
+ @section('content')
142
+
143
+ <div class="container">
144
+
145
+ @if (count($errors) > 0)
146
+
147
+ <div class="alert alert-danger">
148
+
149
+ <ul>
150
+
151
+ @foreach ($errors->all() as $error)
152
+
153
+ <li>{{ $error }}</li>
154
+
155
+ @endforeach
156
+
157
+ </ul>
158
+
159
+ </div>
160
+
161
+ @endif
162
+
163
+ <form action="/store" method="post" enctype="multipart/form-data">
164
+
165
+ <input type="file" name="datafile">
166
+
167
+ <input type="submit" value="アップロード" />
168
+
169
+ {{ csrf_field() }}
170
+
171
+ </form>
172
+
173
+ </div>
174
+
175
+ @endsection
176
+
177
+ ```
178
+
179
+ 成功時
180
+
181
+ resource/view/upload_success
182
+
183
+ ```
184
+
185
+ @section('content')
186
+
187
+ <div class="container">
188
+
189
+ <p>アップロードが成功しました。
190
+
191
+ </div>
192
+
193
+ @endsection
194
+
195
+ ```
196
+
197
+
198
+
199
+
200
+
133
201
  エラー処理時の方法が分からず困っています。
134
202
 
135
203
  宜しくお願いいたします。

3

viewの記述ミスがありました

2017/12/07 08:51

投稿

hidepon
hidepon

スコア206

test CHANGED
File without changes
test CHANGED
@@ -84,6 +84,24 @@
84
84
 
85
85
  ```
86
86
 
87
+ @if (isset($message))
88
+
89
+ <div class="alert">{{$message}}</div>
90
+
91
+ @endif
92
+
93
+
94
+
95
+ <form action="/store" method="post" enctype="multipart/form-data">
96
+
97
+ <input type="file" name="datafile">
98
+
99
+ <input type="submit" value="アップロード" />
100
+
101
+ {{ csrf_field() }}
102
+
103
+ </form>
104
+
87
105
  @section('content')
88
106
 
89
107
  <div class="container">
@@ -105,34 +123,6 @@
105
123
  </div>
106
124
 
107
125
  @endif
108
-
109
- </div>
110
-
111
- @endsection
112
-
113
- <form action="{{url('/send')}}" method="post">
114
-
115
- {{ csrf_field() }}
116
-
117
- <div class="form-group">
118
-
119
- <label>Name</label>
120
-
121
- <input type="text" class="form-control" name="name" value="{{old('name')}}" placeholder="name">
122
-
123
- </div>
124
-
125
- <div class="form-group">
126
-
127
- <label>Level</label>
128
-
129
- <input type="text" class="form-control" name="level" value="{{old('level')}}" placeholder="level">
130
-
131
- </div>
132
-
133
- <input type="submit" value="submit">
134
-
135
- </form>
136
126
 
137
127
  </div>
138
128
 

2

ご回答頂いた内容を反映しました

2017/12/07 08:26

投稿

hidepon
hidepon

スコア206

test CHANGED
File without changes
test CHANGED
@@ -14,11 +14,7 @@
14
14
 
15
15
  Route::get('/', 'UploadController@index');
16
16
 
17
- Route::post('/store', [
18
-
19
- 'as' => 'store', 'uses' => 'UploadController@store'
17
+ Route::post('/store', 'UploadController@store');
20
-
21
- ]);
22
18
 
23
19
  ```
24
20
 
@@ -26,11 +22,23 @@
26
22
 
27
23
  ```
28
24
 
25
+ <?php
26
+
27
+
28
+
29
29
  namespace App\Http\Controllers;
30
+
31
+
30
32
 
31
33
  use Illuminate\Http\Request;
32
34
 
35
+
36
+
33
37
  class UploadController extends Controller
38
+
39
+ {
40
+
41
+
34
42
 
35
43
  public function index(Request $request)
36
44
 
@@ -52,13 +60,23 @@
52
60
 
53
61
  'file' => 'image|max:3000',
54
62
 
55
- ]);;
63
+ ]);
56
64
 
65
+ if ($request->file('file')->isValid()){
66
+
67
+ //アップロード成功時の処理
68
+
57
- return redirect('/')->with('message', 'ファイルをアップロードしました');
69
+ return redirect('/')->with('message', '成功しました');
70
+
71
+ }else{
72
+
73
+ //失敗時の処理(エラーメッセージをviewに入れる)
74
+
75
+ // return redirect('/')->with('message', 'ファイルを確認してください!');
76
+
77
+ }
58
78
 
59
79
  }
60
-
61
- }
62
80
 
63
81
  ```
64
82
 
@@ -157,3 +175,9 @@
157
175
  このような仕組みってできるんでしょうか?
158
176
 
159
177
  宜しくお願いいたします
178
+
179
+
180
+
181
+ (追記2)
182
+
183
+ ご回答内容を反映しました。

1

実現したいことを記述しました

2017/12/07 08:11

投稿

hidepon
hidepon

スコア206

test CHANGED
File without changes
test CHANGED
@@ -125,3 +125,35 @@
125
125
  エラー処理時の方法が分からず困っています。
126
126
 
127
127
  宜しくお願いいたします。
128
+
129
+ (追記)
130
+
131
+ できれば、ほかのフレームワークでやっていたようなことができればうれしいんですが、、、、
132
+
133
+ /store
134
+
135
+ に遷移した段階でエラーがあればエラーメッセージとファイル選択のフォームを再度表示。
136
+
137
+ ファイルが送信されていれば、保存ということをしたいです。
138
+
139
+
140
+
141
+ 公式ドキュメントではこのような内容が読み取れず、できるのか判断出来ない状況です。
142
+
143
+ ちなみにほかのフレームワークでは
144
+
145
+ if (エラーあり){
146
+
147
+ view(エラーのテンプレート);
148
+
149
+ }else{
150
+
151
+ view(成功のテンプレート);
152
+
153
+ }
154
+
155
+ としていました。
156
+
157
+ このような仕組みってできるんでしょうか?
158
+
159
+ 宜しくお願いいたします