How to upload multiple files using the Zend framework?

Even if I select 2 or more images, only one is loaded.

I have a simple form:

<form action="/images/thumbs" method="post" enctype="multipart/form-data"> <input name="file[]" id="file" type="file" multiple="" /> <input type="submit" name="upload_images" value="Upload Images"> </form> 

Then in my controller:

 public function thumbsAction() { $request = $this->getRequest(); if ($request->isPost()) { if (isset($_POST['upload_images'])) { $names = $_FILES['file']['name']; // the names will be an array of names foreach($names as $name){ $path = APPLICATION_PATH.'/../public/img/'.$name; echo $path; // will return all the paths of all the images that i selected $uploaded = Application_Model_Functions::upload($path); echo $uploaded; // will return true as many times as i select pictures, though only one file gets uploaded } } } } 

and upload :

 public static function upload($path) { $upload = new Zend_File_Transfer_Adapter_Http(); $upload->addFilter('Rename', array( 'target' => $path, 'overwrite' => true )); try { $upload->receive(); return true; } catch (Zend_File_Transfer_Exception $e) { echo $e->message(); } } 

Any ideas why I upload only one file?

+6
source share
1 answer

Zend_File_Transfer_Adapter_Http really has file upload information. You just need to iterate using this resource:

 $upload = new Zend_File_Transfer_Adapter_Http(); $files = $upload->getFileInfo(); foreach($files as $file => $fileInfo) { if ($upload->isUploaded($file)) { if ($upload->isValid($file)) { if ($upload->receive($file)) { $info = $upload->getFileInfo($file); $tmp = $info[$file]['tmp_name']; // here $tmp is the location of the uploaded file on the server // var_dump($info); to see all the fields you can use } } } } 
+9
source

Source: https://habr.com/ru/post/943838/


All Articles