Hi Reader's,
Welcome to FindNerd,today we are going to discuss how to upload multiple file upload in CakePHP 2.x?
If we want to upload multiple images in our CakePHP web application with the help of input browse box. So for that we have to follow bellow process.
We have to create view for uploading multiple images which will like below.
HTML 5 Multiple file Tag:
<input name = 'upload[]' type = 'file multiple'>
Use CakePHP form helper to build browse button
<?php
echo $this->Form->create('User', array('type' => 'file'));
echo $this->Form->input('files.', array('type' => 'file', 'multiple'));
echo $this->Form->end('upload');
?>
Add a dot(.) in the end of the name shows all the images selected.
for example
file.
If we want to upload two file which name is image1.jpg and image2.png
We have to use $this->request->data property in our controller function.
Then our controller code will like below code:
<?php
public function upload(){
if(!empty($this->request->data)){
/* Start code for o Uploading images*/
foreach ($this->request->data as $result) {
$name = $result['name'];
if( !empty($name)){ // Check For Empty Values
$tmprary_name = $result['tmp_name'];
$temp = explode(".", $name);
$newfilename = uniqid(). '.' . end($temp);
if (move_uploaded_file($tmprary_name , $target_dir.$newfilename)) {
echo "The file ". basename( $name). " has been successfully uploaded.<BR/>";
}else {
echo "Sorry, there was an error uploading your file.<br/>";
}
}
}
}
}
?>
$this->request->data contains images data like this
<?php
Array
(
[Model] => Array
(
[files] => Array
(
[0] => Array
(
[name] => image1.jpg
[type] => image/jpeg
[tmp_name] => // your temp path
[error] => 0
[size] => 1826587
)
[1] => Array
(
[name] => image2.jpg
[type] => image/jpeg
[tmp_name] => //your temp path
[error] => 0
[size] => 1127346
)
)
)
)
?>
I hope this blog will help to you upload multiple images in your CakePHP web application.
0 Comment(s)