How to send multiple files in postman ReSTful web service?

PhpWeb ServicesRestFile UploadPostman

Php Problem Overview


I am using ReSTful webservice. I am uploading multiple photos with one function (PHP).

I have used $num_files = count($_FILES['myfile']['name']) to count number of files that are to be uploaded but this always gives 1:

Image

When I print $_FILES['myfile']['name'] or $_FILES it returns last image.

Am I suppose to do any setting to send multiple files at a time?

<?php
if($result=="success")
{
 	$num_files = count($_FILES['myfile']['name']);
	Zend_Debug::dump($num_files);
	die;
	for( $i=0; $i < $num_files; $i++ )
	{
		$name = $_FILES["myfile"]["name"][$i];
		$temp_path = $_FILES['myfile']['tmp_name'][$i];
		$image_name = Helper_common::getUniqueNameForFile( $name );
	  	
		echo $image_name;
		die;
		// Set the upload folder path
		$target_path = $originalDirecory."/";
	  
	  
		// Set upload image path
		$image_upload_path = $target_path.$image_name;
		move_uploaded_file($temp_path, $image_upload_path);
		
		//if(move_uploaded_file($temp_path, $image_upload_path))
		//{
		// Set 800*800 popup thumbnail...
		// Set popup directory...
		$thumbnail_directory=$popUpDirectory."/";
		// Set thumbnail name...
		$thumb_name1=$thumbnail_directory.'thumbnail_'.$image_name;
		// Set width and height of the thumbnail...
		$thumb_width=800;
		$thumb_height=800;
		$thumb1=Helper_common::generateThumbnail($image_upload_path, $thumb_name1, $thumb_width, $thumb_height);
	
		//if($thumb)
		//{
			// Set 435*333 thumbnail...
			// Set thumbnail directory...
			$thumbnail_directory=$wallDirecory."/";
			// Set thumbnail name...
			$thumb_name2=$thumbnail_directory.'thumbnail_'.$image_name;
			// Set width and height of the thumbnail...
			$thumb_width=435;
			$thumb_height=435;
			$thumb2=Helper_common::generateThumbnail($image_upload_path, $thumb_name2, $thumb_width, $thumb_height);
			 
			//if($thumb)
			//{
				// Set 176*176 thumbnail...
				// Set thumbnail directory...
				$thumbnail_directory=$galleryDirectory."/";
				// Set thumbnail name...
				$thumb_name3=$thumbnail_directory.'thumbnail_'.$image_name;
				// Set width and height of the thumbnail...
				$thumb_width=176;
				$thumb_height=176;
				$thumb_smart_resize_3 = Helper_ImageResizer::smart_resize_image($image_upload_path, NULL, $thumb_width, $thumb_height, false, $thumb_name3, false);
				$thumb3=Helper_common::generateThumbnail($image_upload_path, $thumb_name3, $thumb_width, $thumb_height);
			//if($thumb)
			//{
				$profile_thumb=$thumb3;
				// Set 131*131 thumbnail...
				// Set thumbnail directory....
				$thumbnail_directory = $thumbnailsDirectory."/";
				// Set thumbnail name....
				$thumb_name4 = $thumbnail_directory.'thumbnail_'.$image_name;
				$thumb_width=131;
				$thumb_height=131;
				$thumb_smart_resize_4=Helper_ImageResizer::smart_resize_image($image_upload_path, NULL, $thumb_width, $thumb_height, false, $thumb_name4, false);
				$thumb4=Helper_common::generateThumbnail($image_upload_path, $thumb_name4, $thumb_width, $thumb_height);
	
				}

Php Solutions


Solution 1 - Php

I got a solution. I need to make myfile an array like this: myfile[] :)

Solution 2 - Php

You need to add a square bracket [] sign to the parameter. Look at the following image. I add file[] to upload multiple images from the postman.

enter image description here

Solution 3 - Php

You can simple add multiple lines with same key and postman converts them to array. No need to add [] as suffix to key.

Request

enter image description here

Response

enter image description here

If you have an array objects that need to passed then follow below pattern

enter image description here

Solution 4 - Php

Update 2020 Postman

You don't need to add [ ] just put the param name and select files.

Solution 5 - Php

Yeah,last version of postman made a bad update.

But, you can download the chrome extensions of postman and send multiple files with it, it still works there.

Edit: I just checked now, they brought it back, but you have to reenter the key value for files if you made them with the chromium version.

But now it works fine.

see the image

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAlways_a_learnerView Question on Stackoverflow
Solution 1 - PhpAlways_a_learnerView Answer on Stackoverflow
Solution 2 - PhpShihab UddinView Answer on Stackoverflow
Solution 3 - PhpAnees HameedView Answer on Stackoverflow
Solution 4 - PhpÁlvaro AgüeroView Answer on Stackoverflow
Solution 5 - PhpRahman RezaeeView Answer on Stackoverflow