0

Я пытаюсь отправить несколько изображений на сервер, но поэтому я храню все изображения в одном массиве, но после этого, когда мне нужно отправить на сервер, он показывает ошибку вблизи линии ,, ......................Метод setRequestProperty (String, String) в типе URLConnection не применим для аргументов (String, ArrayList <String>)

conn.setRequestProperty("image", multimgss); 

ошибка

The method setRequestProperty(String, String) in the type URLConnection is not applicable for the arguments (String, ArrayList<String>).. 

Основная деятельность

public int uploadFile(String sourceFileUri) { 


     String fileName = sourceFileUri; 

     /*String[] mimgs = null; 
     mimgs.equals(fileName);*/ 

     ArrayList<String> multimgss=new ArrayList<String>(); 
     multimgss.add(fileName); 

     System.out.println("multipleimagesss"+multimgss); 


    try { 
     abcd = new JSONArray(multimgss.toString()); 
    } catch (JSONException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 
     //abcd=multimgss.add(fileName); 


     HttpURLConnection conn = null; 
     DataOutputStream dos = null; 
     String lineEnd = "\r\n"; 
     String twoHyphens = "--"; 
     String boundary = "*****"; 
     int bytesRead, bytesAvailable, bufferSize; 
     byte[] buffer; 
     int maxBufferSize = 1 * 1024 * 1024; 
     File sourceFile = new File(sourceFileUri); 

     if (!sourceFile.isFile()) { 

      dialog.dismiss(); 

      Log.e("uploadFile", "Source File not exist :"+imagepath); 

      runOnUiThread(new Runnable() { 
       public void run() { 
        messageText.setText("Source File not exist :"+ imagepath); 
       } 
      }); 

      return 0; 

     } 
     else 
     { 
      try { 


       String cats[]=acTextView.getText().toString().split(","); 
       JsonParse jp=new JsonParse(); 
       for(String cat:cats){ 
        List<SuggestGetSet> list =jp.getParseJsonWCF(acTextView.getText().toString()); 
       for(int i = 0;i<list.size();i++){ 
        if(list.get(i).getName().equals(cat)) 
         catid.add(list.get(i).getId().toString()); 
        //params.add(new BasicNameValuePair("parentid",list.get(i).getId())); 


       } 
       } 



       catsids=catid.toString(); 
       pname = proname.getText().toString(); 
       pskucode = proskucode.getText().toString(); 
       psalerate=prosalerate.getText().toString(); 
       ppurchaserate=propurchaserate.getText().toString(); 
       pweight = proweight.getText().toString(); 
       pweighttype=proweighttype.getText().toString(); 
      // pproactives = proactives.getTag().toString(); 

       System.out.println("active nu stauts"+catsids); 
      // pdisporder = prodisporder.getText().toString(); 
       pdesc = prodesc.getText().toString(); 

       upLoadServerUri = "http://webistname/web-service/addproduct.php?action=addproduct&name="+pname+"&categoryid="+catsids+"&skucode="+pskucode+"&sale_rate="+psalerate+"&purchase_rate="+ppurchaserate+"&weight="+pweight+"&weighttype="+pweighttype+"&description=hello&image="+abcd; 




       // open a URL connection to the Servlet 
       FileInputStream fileInputStream = new FileInputStream(sourceFile); 
       URL url = new URL(upLoadServerUri); 

       // Open a HTTP connection to the URL 
       conn = (HttpURLConnection) url.openConnection(); 
       conn.setDoInput(true); // Allow Inputs 
       conn.setDoOutput(true); // Allow Outputs 
       conn.setUseCaches(false); // Don't use a Cached Copy 
       conn.setRequestMethod("POST"); 
       conn.setRequestProperty("Connection", "Keep-Alive"); 
       conn.setRequestProperty("ENCTYPE", "multipart/form-data"); 
       conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); 

       conn.setRequestProperty("name", pname); 
       conn.setRequestProperty("categoryid", catsids); 
       conn.setRequestProperty("skucode", pskucode); 
       conn.setRequestProperty("sale_rate", psalerate); 
       conn.setRequestProperty("purchase_rate", ppurchaserate); 
       conn.setRequestProperty("weight", pweight); 
       conn.setRequestProperty("weighttype", pweighttype); 
       conn.setRequestProperty("description", "hello"); 
      // conn.setRequestProperty("displayorder", pdisporder); 
       // conn.setRequestProperty("active", pproactives); 
       conn.setRequestProperty("image", abcd.toString()); 


       dos = new DataOutputStream(conn.getOutputStream()); 

       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("Content-Disposition: form-data; name=\"type\"" 
         + lineEnd); 
       dos.writeBytes(lineEnd); 

       // assign value 
       /*dos.writeBytes("version=apps"); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd);*/ 

       dos.writeBytes("name="+pname); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 


       dos.writeBytes("categoryid="+catsids); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("skucode="+pskucode); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("sale_rate="+psalerate); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("purchase_rate="+ppurchaserate); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("weight="+pweight); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("weighttype="+pweighttype); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("description="+"hello"); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 


       /* dos.writeBytes("displayorder="+pdisporder); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("active="+pproactives); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd);*/ 



       dos.writeBytes("Content-Disposition: form-data; name=\"image\";filename=\"" 
             + abcd.toString() + "\"" + lineEnd); 

       dos.writeBytes(lineEnd); 

       // create a buffer of maximum size 
       bytesAvailable = fileInputStream.available(); 

       bufferSize = Math.min(bytesAvailable, maxBufferSize); 
       buffer = new byte[bufferSize]; 

       // read file and write it into form... 
       bytesRead = fileInputStream.read(buffer, 0, bufferSize); 

       while (bytesRead > 0) { 

       dos.write(buffer, 0, bufferSize); 
       bytesAvailable = fileInputStream.available(); 
       bufferSize = Math.min(bytesAvailable, maxBufferSize); 
       bytesRead = fileInputStream.read(buffer, 0, bufferSize); 

       } 

       // send multipart form data necesssary after file data... 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

       // Responses from the server (code and message) 
       serverResponseCode = conn.getResponseCode(); 
       String serverResponseMessage = conn.getResponseMessage(); 

       Log.i("uploadFile", "HTTP Response is : " 
         + serverResponseMessage + ": " + serverResponseCode); 

       if(serverResponseCode == 200){ 

        runOnUiThread(new Runnable() { 
         public void run() { 
          String msg = "File Upload Completed.\n\n See uploaded file here : \n\n" 
            +" F:/wamp/wamp/www/uploads"; 
          messageText.setText(msg); 
          Toast.makeText(MainActivity.this, "File Upload Complete.", Toast.LENGTH_SHORT).show(); 
         } 
        });     
       }  

Fullcode

общественный класс MainActivity расширяет активность реализует OnClickListener {

private static int RESULT_LOAD_IMAGE = 1; 
private TextView messageText; 
private Button uploadButton; 
private ImageView imageview; 
private int serverResponseCode = 0; 
private ProgressDialog dialog = null; 

private String upLoadServerUri = null; 
private String imagepath=null; 

private EditText proname; 
private EditText proskucode; 

private EditText prodesc; 
//private CheckBox proactives; 
private ImageView btnselectpic; 

private String pskucode; 


private EditText prosalerate; 
private EditText propurchaserate; 
private EditText proweight; 
private EditText proweighttype; 
//private EditText prodisporder; 
private String pname; 
private String psalerate; 
private String ppurchaserate; 
private String pweight; 
private String pweighttype; 
private String pproactives; 
private String pdisporder; 
private String pdesc; 
private List<String> catid=new ArrayList<String>(); 
private AutoCompleteTextView acTextView; 
private String catsids; 
private Uri selectedImageUri; 
private int columnIndex; 
private ImageAdapter objImageAdapter; 
private GridView gridView; 
private JSONArray abcd; 
@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    gridView = (GridView) findViewById(R.id.gridview); 
    //gridView.setAdapter(new ImageAdapter(this)); 

    objImageAdapter= new ImageAdapter(this); 
    gridView.setAdapter(objImageAdapter); 

    gridView.setOnItemClickListener(new OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> parent, 
     View v, int position, long id) 
     {     
      Toast.makeText(getBaseContext(), 
        "pic" + (position + 1) + " selected", 
        Toast.LENGTH_SHORT).show(); 
     } 
    });   

    acTextView = (AutoCompleteTextView) findViewById(R.id.multautoComplete); 
    acTextView.setAdapter(new SuggestionAdapter(this,acTextView.getText().toString())); 
    // acTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); 

    proname=(EditText)findViewById(R.id.edt_proname); 
    proskucode=(EditText)findViewById(R.id.edt_proskucode); 
    prosalerate=(EditText)findViewById(R.id.edt_salerate); 
    propurchaserate=(EditText)findViewById(R.id.edt_purchaserate); 
    proweight=(EditText)findViewById(R.id.edt_weight); 
    proweighttype=(EditText)findViewById(R.id.edt_weighttype); 
// prodesc=(EditText)findViewById(R.id.edt_desc); 
    // prodisporder=(EditText)findViewById(R.id.edt_disporder); 
    // proactives=(CheckBox)findViewById(R.id.edt_proactive); 

    uploadButton = (Button)findViewById(R.id.btn_addpro); 
    messageText = (TextView)findViewById(R.id.edt_imgs); 
    btnselectpic = (ImageView)findViewById(R.id.browsesimgs); 
    imageview = (ImageView)findViewById(R.id.imagevw); 


    btnselectpic.setOnClickListener(this); 
    uploadButton.setOnClickListener(this); 

} 


@Override 
public void onClick(View arg0) { 
    if(arg0==btnselectpic) 
    { 
     /*Intent intent=new Intent(MainActivity.this,PhotoSelection.class); 
     startActivity(intent);*/ 

     Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
     intent.setType("image/*"); 
     startActivityForResult(intent, 1); 
     /*Intent intent = new Intent(); 
     intent.setType("image/*"); 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
     startActivityForResult(Intent.createChooser(intent, "Complete action using"), 1);*/ 

     /*Intent i = new Intent(Action.ACTION_MULTIPLE_PICK); 
     startActivityForResult(i, 200);*/ 
    } 
    else if (arg0==uploadButton) { 

     dialog = ProgressDialog.show(MainActivity.this, "", "Uploading file...", true); 
     messageText.setText("uploading started....."); 
     new Thread(new Runnable() { 
      public void run() {    
        uploadFile(imagepath);      
      } 
      }).start();  
    } 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { 
     selectedImageUri= data.getData(); 
     String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

     Cursor cursor = getContentResolver().query(selectedImageUri, 
       filePathColumn, null, null, null); 
     cursor.moveToFirst(); 

     /* columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     picturePath = cursor.getString(columnIndex); 
     cursor.close();*/ 

     // imageView = (ImageView) findViewById(R.id.imgView); 
     imageview.setImageBitmap(BitmapFactory.decodeFile(imagepath)); 

     columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     String picturePath = cursor.getString(columnIndex); 
     objImageAdapter.addToList(picturePath); 
     cursor.close(); 
     // addmores.setVisibility(View.VISIBLE); 
    } 

    /*if (requestCode == 1 && resultCode == RESULT_OK) { 
     //Bitmap photo = (Bitmap) data.getData().getPath(); 

     selectedImageUri = data.getData(); 
     imagepath = getPath(selectedImageUri); 
     Bitmap bitmap=BitmapFactory.decodeFile(imagepath); 
     imageview.setImageBitmap(bitmap); 
     messageText.setText("Uploading file path:" +imagepath); 

    }*/ 
} 
    public String getPath(Uri uri) { 
      String[] projection = { MediaStore.Images.Media.DATA }; 
      Cursor cursor = managedQuery(uri, projection, null, null, null); 
      int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
      cursor.moveToFirst(); 
      return cursor.getString(column_index); 
     } 

    public class ImageAdapter extends BaseAdapter 
    { 
    private Context context; 
    ArrayList<String> arrayList=new ArrayList<String>(); 

    public ImageAdapter(Context c) 
    { 
     context = c; 
    } 

    //---returns the number of images--- 
    public int getCount() { 
     return arrayList.size(); 
    } 

    //---returns the ID of an item--- 
    public Object getItem(int position) { 
     return position; 
    } 

    void addToList(String strPath) 
    { 
     this.arrayList.add(strPath); 
     this.notifyDataSetChanged(); 
    } 
    public long getItemId(int position) { 
     return position; 
    } 

    //In this array you have to store all images path which is you want to display in baseapater and must be global to access in baseapater 

    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     ImageView imageView; 
     if (convertView == null) { 
      imageView = new ImageView(context); 
      imageView.setLayoutParams(new GridView.LayoutParams(185, 185)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(5, 5, 5, 5); 
     } else { 
      imageView = (ImageView) convertView; 
     } 
     String path = arrayList.get(position); 
     Bitmap myBitmap = BitmapFactory.decodeFile(path); 
     imageView.setImageBitmap(myBitmap); 
     return imageView; 
    } 
    }  

public int uploadFile(String sourceFileUri) { 


     String fileName = sourceFileUri; 

     /*String[] mimgs = null; 
     mimgs.equals(fileName);*/ 

     ArrayList<String> multimgss=new ArrayList<String>(); 
     multimgss.add(fileName); 

     System.out.println("multipleimagesss"+multimgss); 


    try { 
     abcd = new JSONArray(multimgss.toString()); 
    } catch (JSONException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 
     //abcd=multimgss.add(fileName); 


     HttpURLConnection conn = null; 
     DataOutputStream dos = null; 
     String lineEnd = "\r\n"; 
     String twoHyphens = "--"; 
     String boundary = "*****"; 
     int bytesRead, bytesAvailable, bufferSize; 
     byte[] buffer; 
     int maxBufferSize = 1 * 1024 * 1024; 
     File sourceFile = new File(sourceFileUri); 

     if (!sourceFile.isFile()) { 

      dialog.dismiss(); 

      Log.e("uploadFile", "Source File not exist :"+imagepath); 

      runOnUiThread(new Runnable() { 
       public void run() { 
        messageText.setText("Source File not exist :"+ imagepath); 
       } 
      }); 

      return 0; 

     } 
     else 
     { 
      try { 


       String cats[]=acTextView.getText().toString().split(","); 
       JsonParse jp=new JsonParse(); 
       for(String cat:cats){ 
        List<SuggestGetSet> list =jp.getParseJsonWCF(acTextView.getText().toString()); 
       for(int i = 0;i<list.size();i++){ 
        if(list.get(i).getName().equals(cat)) 
         catid.add(list.get(i).getId().toString()); 
        //params.add(new BasicNameValuePair("parentid",list.get(i).getId())); 


       } 
       } 
       catsids=catid.toString(); 
       pname = proname.getText().toString(); 
       pskucode = proskucode.getText().toString(); 
       psalerate=prosalerate.getText().toString(); 
       ppurchaserate=propurchaserate.getText().toString(); 
       pweight = proweight.getText().toString(); 
       pweighttype=proweighttype.getText().toString(); 
      // pproactives = proactives.getTag().toString(); 

       System.out.println("active nu stauts"+catsids); 
      // pdisporder = prodisporder.getText().toString(); 
       pdesc = prodesc.getText().toString(); 

       upLoadServerUri = "http://mywebsitename/web-service/addproduct.php?action=addproduct&name="+pname+"&categoryid="+catsids+"&skucode="+pskucode+"&sale_rate="+psalerate+"&purchase_rate="+ppurchaserate+"&weight="+pweight+"&weighttype="+pweighttype+"&description=hello&image="+abcd; 




       // open a URL connection to the Servlet 
       FileInputStream fileInputStream = new FileInputStream(sourceFile); 
       URL url = new URL(upLoadServerUri); 

       // Open a HTTP connection to the URL 
       conn = (HttpURLConnection) url.openConnection(); 
       conn.setDoInput(true); // Allow Inputs 
       conn.setDoOutput(true); // Allow Outputs 
       conn.setUseCaches(false); // Don't use a Cached Copy 
       conn.setRequestMethod("POST"); 
       conn.setRequestProperty("Connection", "Keep-Alive"); 
       conn.setRequestProperty("ENCTYPE", "multipart/form-data"); 
       conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); 

       conn.setRequestProperty("name", pname); 
       conn.setRequestProperty("categoryid", catsids); 
       conn.setRequestProperty("skucode", pskucode); 
       conn.setRequestProperty("sale_rate", psalerate); 
       conn.setRequestProperty("purchase_rate", ppurchaserate); 
       conn.setRequestProperty("weight", pweight); 
       conn.setRequestProperty("weighttype", pweighttype); 
       conn.setRequestProperty("description", "hello"); 

       conn.setRequestProperty("image", abcd.toString()); 


       dos = new DataOutputStream(conn.getOutputStream()); 

       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("Content-Disposition: form-data; name=\"type\"" 
         + lineEnd); 
       dos.writeBytes(lineEnd); 


       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd);*/ 

       dos.writeBytes("name="+pname); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 


       dos.writeBytes("categoryid="+catsids); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("skucode="+pskucode); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("sale_rate="+psalerate); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("purchase_rate="+ppurchaserate); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("weight="+pweight); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("weighttype="+pweighttype); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 

       dos.writeBytes("description="+"hello"); 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + lineEnd); 


       dos.writeBytes("Content-Disposition: form-data; name=\"image\";filename=\"" 
             + abcd.toString() + "\"" + lineEnd); 

       dos.writeBytes(lineEnd); 

       // create a buffer of maximum size 
       bytesAvailable = fileInputStream.available(); 

       bufferSize = Math.min(bytesAvailable, maxBufferSize); 
       buffer = new byte[bufferSize]; 

       // read file and write it into form... 
       bytesRead = fileInputStream.read(buffer, 0, bufferSize); 

       while (bytesRead > 0) { 

       dos.write(buffer, 0, bufferSize); 
       bytesAvailable = fileInputStream.available(); 
       bufferSize = Math.min(bytesAvailable, maxBufferSize); 
       bytesRead = fileInputStream.read(buffer, 0, bufferSize); 

       } 

       // send multipart form data necesssary after file data... 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

       // Responses from the server (code and message) 
       serverResponseCode = conn.getResponseCode(); 
       String serverResponseMessage = conn.getResponseMessage(); 

       Log.i("uploadFile", "HTTP Response is : " 
         + serverResponseMessage + ": " + serverResponseCode); 

       if(serverResponseCode == 200){ 

        runOnUiThread(new Runnable() { 
         public void run() { 
          String msg = "File Upload Completed.\n\n See uploaded file here : \n\n" 
            +" F:/wamp/wamp/www/uploads"; 
          messageText.setText(msg); 
          Toast.makeText(MainActivity.this, "File Upload Complete.", Toast.LENGTH_SHORT).show(); 
         } 
        });     
       }  


       fileInputStream.close(); 
       dos.flush(); 
       dos.close(); 

      } catch (MalformedURLException ex) { 

       dialog.dismiss(); 
       ex.printStackTrace(); 

       runOnUiThread(new Runnable() { 
        public void run() { 
         messageText.setText("MalformedURLException Exception : check script url."); 
         Toast.makeText(MainActivity.this, "MalformedURLException", Toast.LENGTH_SHORT).show(); 
        } 
       }); 

       Log.e("Upload file to server", "error: " + ex.getMessage(), ex); 
      } catch (Exception e) { 

       dialog.dismiss(); 
       e.printStackTrace(); 

       runOnUiThread(new Runnable() { 
        public void run() { 
         messageText.setText("Got Exception : see logcat "); 
         Toast.makeText(MainActivity.this, "Got Exception : see logcat ", Toast.LENGTH_SHORT).show(); 
        } 
       }); 
       Log.e("Upload file to server Exception", "Exception : " + e.getMessage(), e); 
      } 
      dialog.dismiss();  
      return serverResponseCode; 

     } 
    } 

}

enter image description here

+0

выпуска происходит потому, что 'setRequestProperty' принимают только String, в качестве второго параметра.поэтому вместо передачи 'multimgss' ArrayList создайте JSONArray или JSONObject из' multimgss', затем передайте его в 'setRequestProperty'. любая проблема при передаче изображений в 'JSONArray или JSONObject'? –

+0

как пройти с помощью jsonarray? –

+0

use 'conn.setRequestProperty (" image ", jsonarray.toString()); 'для передачи JSONArray –

ответ

0

Вы можете отправить String параметр и как поле с setRequestProperty()

Проблема: Во втором параметре вы передаете ArrayList<String>

Пытаться пройти каждый элемент multimgss один за другим с setRequestProperty()

   FileInputStream fileInputStream = new FileInputStream(sourceFile); 
      URL url = new URL(upLoadServerUri); 

      // Open a HTTP connection to the URL 
      conn = (HttpURLConnection) url.openConnection(); 
      conn.setDoInput(true); // Allow Inputs 
      conn.setDoOutput(true); // Allow Outputs 
      conn.setUseCaches(false); // Don't use a Cached Copy 
      conn.setRequestMethod("POST"); 
      conn.setRequestProperty("Connection", "Keep-Alive"); 
      conn.setRequestProperty("ENCTYPE", "multipart/form-data"); 
      conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); 

      conn.setRequestProperty("name", pname); 
      conn.setRequestProperty("categoryid", catsids); 
      conn.setRequestProperty("skucode", pskucode); 
      conn.setRequestProperty("sale_rate", psalerate); 
      conn.setRequestProperty("purchase_rate", ppurchaserate); 
      conn.setRequestProperty("weight", pweight); 
      conn.setRequestProperty("weighttype", pweighttype); 
      conn.setRequestProperty("description", pdesc); 


      conn.setRequestProperty("image", multimgss.get(i++)); 
      // it will give i th element 

Примечание: Из документации разработчика Android для setRequestProperty()

Устанавливает значение указанного поля заголовка запроса. Значение будет использоваться только текущим экземпляром URLConnection. Этот метод можно вызвать только до установления соединения.

Итак, вам нужно вызвать этот метод каждый раз перед установлением соединения

+0

что я здесь? –

+0

Ваш ответ не работает –

+0

В чем проблема? Вы должны передать String в качестве второго параметра в 'setRequestProperty' .. R u делает то же самое? – Kushal

0

setRequestProperty метода только принимает String вместо ArrayList. получить JSONArray от ArrayList как:

JSONArray jsonArrayImgs=new JSONArray(); 
ArrayList<String> multimgss=new ArrayList<String>(); 
for (String string : multimgss) 
    { 
    jsonArrayImgs.put(string); 
    } 

Сейчас проходят jsonArrayImgs к setRequestProperty:

conn.setRequestProperty("image", jsonArrayImgs.toString()); 

EDIT:

sourceFileUri является null. поэтому обновление getItem метода как переходник:

public String getItem(int position) { 
     return arrayList.get[position]; 
    } 

Теперь внутри onItemClick из GridView Asign выбранного пути изображения sourceFileUri как:

public void onItemClick(AdapterView<?> parent, 
     View v, int position, long id) 
     {     
      imagepath=objImageAdapter.getItem(position); 
     } 
+0

app crash и он показывает error см. мой отредактированный вопрос i posted logcat –

+0

@chris: что такое номер строки '290'? –

+0

@chris: 'imagepath' is' null' см. Мой ответ на редактирование –

Смежные вопросы