Я создаю форму и пытаюсь загрузить несколько изображений. Все правильно с одним изображением. когда я пытаюсь загрузить несколько изображений, то я получаю только одно изображение на выходе.
Вот мой файл View.
<div class="from-control-div">
<?php echo $this->Form->create('Post', array('type' => 'file','id'=>'unitform','class'=>'form-horizontal','role'=>'form','url' => array('controller' => 'posts', 'action' => 'savepost')));?>
<div class="from-div-bottom">
<div class="form-group">
<label class="col-sm-4 control-label">File Upload</label>
<div class="col-sm-6" id="more-files">
<?php echo $this->Form->input('files.',array('type'=>'file','label' => false,'placeholder' => 'Upload images','id'=>"inputFile",'multiple','onchange'=>'readURL(this)'));?>
<!--<div id="fileList"></div>-->
</div>
<a class="col-sm-2 pull-right" style="font-weight:bold;" id="add-more"><i class="fa fa-plus"></i> Add More</a>
</div>
</div>
</form>
После этого вот мой контроллер. Если я печатаю print_r ($ data); тогда вывод - один массив. Нет множественного массива. Любая помощь для меня
Array ( [0] => Array ( [name] => download.jpg [type] => image/jpeg [tmp_name] => /tmp/phpX3Oy32 [error] => 0 [size] => 12988 ) )
public function savepost() {
if (count($this->request->data) > 0) {
$fileNames = '';
if (isset($this->request->data['Post']['files']) && count($this->request->data['Post']['files']) > 0) {
$data=$this->request->data['Post']['files'];
print_r($data);
$fileNames = array();
foreach ($this->request->data['Post']['files'] as $filedata) {
if(isset($filedata["name"]) && ($filedata["name"] !='')){
$upload_dir = FILE_UPLOAD_PATH;
$original = explode('.', $filedata["name"]);
$extension = array_pop($original);
$newname = time() . '.' . $extension;
if (file_exists($upload_dir . $newname)) {
unlink($upload_dir . $newname);
}
if (move_uploaded_file($filedata["tmp_name"], $upload_dir . $newname)) {
$fileNames[] = $newname;
print_r($fileNames);
}
}
}
}
}
}