質問編集履歴

1

具体的に修正しています

2018/05/13 08:26

投稿

DaisukeMori
DaisukeMori

スコア225

test CHANGED
File without changes
test CHANGED
@@ -1,13 +1,3 @@
1
- 【要件】
2
-
3
- ・画像をフォーム上からデータベース(MySQL)保存
4
-
5
- ・ビューに表示
6
-
7
- 考え方をご教授いただけないでしょうか?
8
-
9
-
10
-
11
1
  【前提】
12
2
 
13
3
  CakePHP 3.0
@@ -16,123 +6,81 @@
16
6
 
17
7
 
18
8
 
19
- 実装できたこと
9
+ 要件
20
10
 
21
- ・webroot内に画像アップロドする仕組み
11
+ 画像パスをデタベースに保存
22
12
 
23
- ※参考までに作ったものをアップしておきます
13
+ 現在、ここが入らない
24
14
 
25
- 参考にしたサイト
26
-
27
- [リンク内容](https://www.sejuku.net/blog/30351)
15
+ 36行目をvar_dumpさせたら["image"]=>string(0)が出てしまう
28
16
 
29
17
 
30
18
 
31
- ```
19
+ 【できていること】
32
20
 
21
+ このディレクトリにアップロードした画像を保存
22
+
33
- // src/Template/Uploads/index.ctp
23
+ ../webroot/img/
34
24
 
35
25
 
36
26
 
27
+ 一応、ID(A_I)には入っているので、データベースは反応している
28
+
37
- <div class="UsersForm">
29
+ ![イメージ説明](e9a036d5a0a09b0546349dee47b77369.jpeg)
38
30
 
39
31
 
40
32
 
33
+ var_dump情報
34
+
41
- 画像アップロードサンプル
35
+ 31行目:アップロード画像パスは入っている
36
+
37
+ ![イメージ説明](8ad724b922350c604e8a2582d0b02812.jpeg)
42
38
 
43
39
 
44
40
 
45
- <p><?= $message; ?></p>
46
-
47
- <?= $this->Form->create('UploadData', ['enctype' => 'multipart/form-data','url' => '/uploads/','type' => 'post']); ?>
48
-
49
- <?= $this->Form->text('UploadData.img_name', ['type'=>'file' ]); ?>
50
-
51
- <?= $this->Form->button('画像を保存'); ?>
52
-
53
- <?= $this->Form->end(); ?>
54
-
55
- </div>
41
+ 【参考コード抜粋】
56
-
57
- ```
58
42
 
59
43
  ```php
60
44
 
61
- // src/Controller/UploadsController.php
45
+ // 中略
62
46
 
63
47
 
64
48
 
65
- <?php
49
+ public function index(){
66
50
 
51
+ $Upload = $this->Uploads->newEntity();
52
+
53
+ $this->set('message','読み込むファイルを選んでください。');
54
+
55
+ if ($this->request->isPost()) {
56
+
57
+ //アップロードするファイルの場所
58
+
59
+ $uploaddir = '../webroot/img/';
60
+
61
+ $uploadfile = $uploaddir.basename($this->request->data['Uploads']['image']['name']);
62
+
67
- namespace App\Controller;
63
+ var_dump($uploadfile);
68
64
 
69
65
 
70
66
 
71
- use App\Controller\AppController;
67
+ if (move_uploaded_file($this->request->data['Uploads']['image']['tmp_name'], $uploadfile)){
72
68
 
73
- use Cake\Event\Event;
69
+ $data = $this->request->data();
74
70
 
75
- use Cake\ORM\Table;
71
+ $Upload = $this->Uploads->patchEntity($Upload, $data);
76
72
 
77
- use Cake\ORM\TableRegistry;
73
+ if($this->Uploads->save($Upload)){
78
74
 
75
+ var_dump($Upload);
79
76
 
77
+ $this->set('message','読み込み成功');
80
78
 
81
- class UploadsController extends AppController{
82
-
83
-
84
-
85
-
86
-
87
- public function beforeFilter(Event $event){
88
-
89
- parent::beforeFilter($event);
90
-
91
- $this->viewBuilder()->Layout('user');
92
-
93
- $this->Auth->allow(['index']);
94
-
95
- $this->set('header','User/header');
96
-
97
- $this->set('footer','User/footer');
98
-
99
- }
79
+ }
100
-
101
-
102
-
103
- public function initialize(){
104
-
105
- parent::initialize();
106
-
107
- $this->viewBuilder()->autoLayout(true);
108
-
109
- }
110
-
111
-
112
-
113
- public function index(){
114
-
115
- $this->set('message','読み込むファイルを選んでください。');
116
-
117
- if (isset($this->request->data['UploadData'])) {
118
-
119
- //アップロードするファイルの場所
120
-
121
- $limitfilesize = '';
122
-
123
- $uploaddir = '../webroot/img/';
124
-
125
- $uploadfile = $uploaddir.basename($this->request->data['UploadData']['img_name']['name']);
126
-
127
-
128
-
129
- if (move_uploaded_file($this->request->data['UploadData']['img_name']['tmp_name'], $uploadfile)){
130
-
131
- $this->set('message','読み込み成功です');
132
80
 
133
81
  }else{
134
82
 
135
- $this->set('message','読み込み失敗です');
83
+ $this->set('message','読み込み失敗');
136
84
 
137
85
  }
138
86
 
@@ -140,44 +88,4 @@
140
88
 
141
89
  }
142
90
 
143
-
144
-
145
- // アクセス権限
146
-
147
- public function isAuthorized($user = null){
148
-
149
- $action = $this->request->params['action'];
150
-
151
-
152
-
153
- if(in_array($action,['index','view'])){
154
-
155
- return true;
156
-
157
- }
158
-
159
- if($user['role'] === 'admin'){
160
-
161
- return true;
162
-
163
- }
164
-
165
- if($user['role'] === 'author'){
166
-
167
- return true;
168
-
169
- }
170
-
171
- return false;
172
-
173
- }
174
-
175
-
176
-
177
- }
178
-
179
-
180
-
181
- ?>
182
-
183
91
  ```