Uploading multiple images in webservice using PHP

2019-08-02 05:41发布

I am new to webservice using PHP for Android device. I need to work on multiple image upload concept. Please suggest. I have implemented single upload concept the code for single file upload is given below.

$data = $_REQUEST;
if($data["prop_images"]){       
            $filename = md5(time()).'.jpg';
            $base=$data["prop_images"];
            $binary = base64_decode($base);         
            $pathtoupload = JPATH_ADMINISTRATOR . '/components/com_clinchproperties/galupload/';
            //header('Content-Type: bitmap; charset=utf-8');  // binary, utf-8 bytes
            $actual_image_name = time().".jpg";
            $image = $filename;
            $file = fopen($pathtoupload.$filename,  'wb');
            fwrite($file, $binary);
            fclose($file);
        }

I need code to upload n number of images at same time. Can any one help me with it? Thanks in advance.

2条回答
Summer. ? 凉城
2楼-- · 2019-08-02 05:52

You have to pass array of files. As you mentioned in comment, you are sending file data in base64 format, try following code for PHP.

PHP

  $data = $_REQUEST;
  if($data["prop_images"]){ 
    foreach($data["prop_images"] as $img){ //array of images. So loop for every images
        $filename = md5(time()).'.jpg';
        $base=$img;
        $binary = base64_decode($base);         
        $pathtoupload = JPATH_ADMINISTRATOR . '/components/com_clinchproperties/galupload/';
        $actual_image_name = time().".jpg";
        $image = $filename;
        $file = fopen($pathtoupload.$filename,  'wb');
        fwrite($file, $binary);
        fclose($file);
    }
  }

In android code, make sure to add [] in parameter name while making POST request. That parameter should be prop_images[] as per example I given above.

I'm not an Android developer, but I can post code from our Android developer.

Android

HttpClient httpClient = new DefaultHttpClient();

HttpPost postRequest = new HttpPost("http://webserver.com/path/to/webservice.php");

MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

for (int i = 0; i < number_of_images; i++) {
    //convert your images to base64 and store in base64ImageData.
    reqEntity.addPart("prop_images[]", base64ImageData);   //adding parameter
}

//execute request.
查看更多
Fickle 薄情
3楼-- · 2019-08-02 06:11

This will help you to check your web service

<form method="post" enctype="multipart/form-data" action="audioupload.php">
 <input type="file" name="file1" multiple>
 <input type="submit"  value="OK">
</form>

audio.php
 <?php  
   move_uploaded_file($_FILES["file1"]["tmp_name"],"audio/".$_FILES["file1"]["name"]);   
  $url = "audio/".$_FILES["file1"]["name"];
  ?>

likewise developer can call this service n times.

查看更多
登录 后发表回答