How to send multiple files in postman ReSTful web service?
PhpWeb ServicesRestFile UploadPostmanPhp 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:
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.
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
Response
If you have an array objects that need to passed then follow below pattern
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