Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9007549
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T01:43:14+00:00 2026-06-16T01:43:14+00:00

I have an issue with multiple images upload to php server. The code given

  • 0

I have an issue with multiple images upload to php server. The code given below works fine for android 2.x versions, but the same code doesn’t work for android 4.x and above. I have googled and found out that the data posting has to be done asynchronously by AsyncTask. But I have no clue about how it has to be done via phonegap(calling of async task).

Here I have my code :

package com.mymedlinks.hybrid;

import java.util.TimeZone;

import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.ContextWrapper;
import android.provider.Settings;
import android.util.Log;

public class SamplePlugin extends Plugin{
    public String ACTION_POST_DATA="post_data";

    @Override
    public PluginResult execute(String arg0, JSONArray arg1, String arg2) {
        // TODO Auto-generated method stub
        PluginResult pluginRes;
        if(ACTION_POST_DATA.equals(arg0)){
            try {
                pluginResult = imgsUpload(args.getString(0),
                        args.getString(1), args.getString(2));
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else{
            pluginRes = new PluginResult(PluginResult.Status.INVALID_ACTION);;
        }
        return pluginRes;
    }

    private PluginResult imgsUpload(String date,String time,
             String fileNames) {
             PluginResult pluginResult=null;
        HttpURLConnection conn = null;
        DataOutputStream dos = null;
        DataInputStream inStream = null;
        ByteArrayOutputStream baos = null;
        byte[] imgData = null;
        String urlString = "https://www.mysampledata.com/upload_imgs.php";

                //opening of http connection
                try {
            URL url = new URL(urlString);
            conn = (HttpURLConnection) url.openConnection();
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Connection", "Keep-Alive");
            conn.setRequestProperty("Content-Type",
                    "multipart/form-data;boundary=---------------------------1177141514664");
            String msg = "";
            StringBuffer buffr = new StringBuffer(msg);

            buffr.append("-----------------------------1177141514664");
            buffr.append(CrLf);
            buffr.append("Content-Disposition: form-data; name=\"date\";"
                    + CrLf);
            buffr.append(CrLf);
            buffr.append(date + CrLf);

            buffr.append("-----------------------------1177141514664");
            buffr.append(CrLf);
            buffr.append("Content-Disposition: form-data; name=\"time\";"
                    + CrLf);
            buffr.append(CrLf);
            buffr.append(time + CrLf);

            buffr.append("-----------------------------1177141514664");
            buffr.append(CrLf);
            buffr.append("Content-Disposition: form-data; name=\"MAX_FILE_SIZE\";"
                    + CrLf);
            buffr.append(CrLf);
            buffr.append("100000000072000" + CrLf);

            buffr.append("-----------------------------1177141514664");
            buffr.append(CrLf);
            buffr.append("Content-Disposition: form-data; name=\"method\";"
                    + CrLf);
            buffr.append(CrLf);
            buffr.append("upload.snapshots" + CrLf);

            String msg1 = "";
            StringBuffer buffr1 = new StringBuffer(msg1);
            List<byte[]> byetsInfo = new ArrayList<byte[]>();
            ArrayList<String> filenames = new ArrayList<String>();
            try {
                JSONObject jObj = new JSONObject(new String(fileNames));
                JSONArray jArray = jObj.getJSONArray("snapshot_images");
                String drPath = android.os.Environment
                        .getExternalStorageDirectory().toString();

                for (int i = 0; i < jArray.length(); i++) {
                    String img = jArray.getString(i);
                    Log.e("sample app", " imageName " + img);

                    File f = new File(drPath + "/sample_app_images/" + img);
                    Uri ur = Uri.fromFile(f);
                    filenames.add(img);
                    Bitmap bmp;
                    try {
                        bmp = Media.getBitmap(this.cordova.getActivity()
                                .getContentResolver(), ur);
                        baos = new ByteArrayOutputStream();
                        bmp.compress(CompressFormat.JPEG, 90, baos);

                        imgData = baos.toByteArray();
                        Log.e("sample app", " img data size " + imgData.length);

                    } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                    byetsInfo.add(imgData);

                }

            } catch (JSONException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

            String msg3 = "";
            StringBuffer buffr3 = new StringBuffer(msg3);
            buffr3.append(CrLf);
            buffr3.append("-----------------------------4664151417711--");
            buffr3.append(CrLf);

            conn.setChunkedStreamingMode(0);

            for (int i = 0; i < byetsInfo.size(); i++) {
                dos = new DataOutputStream(conn.getOutputStream());

                buffr1.delete(0, buffr1.length());
                buffr1.append("-----------------------------1177141514664");
                buffr1.append(CrLf);
                buffr1.append("Content-Disposition: form-data; name=\"snapshotUpload[]\"; filename=\""
                        + filenames.get(i) + "\"" + CrLf);
                buffr1.append("Content-Type: image/jpeg" + CrLf);
                buffr1.append(CrLf);

                dos.write(buffr.toString().getBytes());
                dos.write(buffr1.toString().getBytes());

                int index = 0;
                int size = 1024;
                do {

                    if ((index + size) < byetsInfo.get(i).length) {
                        size = byetsInfo.get(i).length - index;
                    }
                    dos.write(byetsInfo.get(i), index, size);
                    index += size;
                } while (index < byetsInfo.get(i).length);
                Log.e("file upload ", " written: " + index);

                dos.write(buffr3.toString().getBytes());

            }

            Log.e("Debug", "File is written");
            Log.e("activity upload demo ",
                    " in file upload " + conn.getResponseMessage());
            dos.flush();

        } catch (Exception ec) {
            ec.printStackTrace();
        }

           String s=null;
        // Read the response
        try {
            inStream = new DataInputStream(conn.getInputStream());
            char buff = 512;
            int len;
            byte[] data = new byte[buff];
            do {
                len = inStream.read(data);
                if (len > 0) {
                    System.out.println(new String(data, 0, len));
                    s+=new String(data, 0, len);
                    Log.e("sample app", "  "
                            + new String(data, 0, len));
                }
            } while (len > 0);
            Log.e("file upload ", " DONE ");

            dos.close();
            inStream.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }

                try {
            if(conn.getResponseMessage().equalsIgnoreCase("OK") && s!=null){
                pluginResult = new PluginResult(PluginResult.Status.OK, s);
            } else {
                pluginResult = new PluginResult(PluginResult.Status.ERROR,
                        false);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return pluginResult;

    }

}

The data in the code that is filenames, date and time I get from js code which will be sent to the above class. Can anyone please provide me with an example about how the Async Task can be called via Phonegap (i.e., calling it in the imgsUpload())

Thanks a lot.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T01:43:15+00:00Added an answer on June 16, 2026 at 1:43 am

    I have got a solution for this and it’s here Multiple Image Upload using AsyncTask in Android using Phonegap

    Either ways the code seems to work fine on all devices once the following line of code is removed

    conn.setChunkedStreamingMode(0);
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have this issue with multiple Images upload with Android 3.x versions and above.
i have an issue with uploading multiple files to disk. here is my code.
This isn't a super critical issue, but in my project, I have multiple targets
I have a form where users can enter multiple images to upload along with
I have an issue wherein multiple different kinds of logins in a Tomcat backend
The Issue: when multiple users have access to the same working directory, permissions issues
I am have an issue with my scrollview which holds multiple views. I think
I'm having an issue with multiple markers on google maps - I currently have
I have multiple images stored at URLs like: /uploads/hash/IMAGE001.jpg . Using jQuery UI's sortable()
I have had problems with a simple php script in which I can upload

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.