如何在addMultipartParts Ion Koush库中发送键值?

时间:2018-08-22 12:28:18

标签: android laravel laravel-5 ion ion-koush

我在我的android项目中使用了 Ion Koush库,它工作正常,但是当我使用addMultipartParts函数时,我不知道如何指定键请求。

我的代码:

Ion.with(this)
   .load("POST", UPLOADIMAGESTG_URL)
   .setTimeout(5000)
   .setMultipartParameter("omni_id", String.valueOf(omniTesteGrade.getOmniProduct().get_id()))
   .addMultipartParts(files)
   .asJsonObject()
   .setCallback(new FutureCallback<JsonObject>() {


    @Override        
    public void onCompleted(Exception e, JsonObject result) {

                if (e != null) {
                    pDialog.setTitleText("Não foi possível enviar imagens, enviando dados do produto");
                    sendTgToServer(json);
                } else {
                    pDialog.setTitleText("Enviando dados do produto");
                    sendTgToServer(json);
                }
            }

   });

它在服务器端运行良好,因为我使用laravel函数Input::All()选择了所有输入。但是当我想选择特定的请求时,我会使用此代码

   foreach($fileObjects as $fileObject) {
            if (is_file($fileObject)) {
                $imageList[] =$fileObject;
            } else {
                $id = $fileObject;
            }
   }

这是错误的,服务器工作又需要一个过程,我不想要。

1 个答案:

答案 0 :(得分:0)

您想将单个Image文件上载到服务器或将多个文件上载到服务器的问题还不清楚。

因此,基本上,有一种非常简单的方法可以实现此目标。

  1. 要上传单个文件:-

    Ion.with(this)  
    .load("POST", UPLOADIMAGESTG_URL)  
    .uploadProgressBar(uploadProgressBar)   
    .setTimeout(5000)   
    .setMultipartParameter("omni_id", String.valueOf(omniTesteGrade.getOmniProduct().get_id()))  
    .setMultipartFile("key to upload image", new File(files))  
    .asJsonObject()  
    .setCallback(new FutureCallback<JsonObject>() { 
    @Override        
    public void onCompleted(Exception e, JsonObject result) {  
    
                if (e != null) {
                    pDialog.setTitleText("Não foi possível enviar imagens, enviando dados do produto");
                    sendTgToServer(json);
                } else {
                    pDialog.setTitleText("Enviando dados do produto");
                    sendTgToServer(json);
                }
     });  
    
  2. 要上传多个文件:-

ArrayList fileParts =新的ArrayList <>();

for (int i = 0; i < salonPhotos.size(); i++) {
   Part part = new FilePart("image_name[" + i + "]", image_value[i]);
   fileParts.add(part);
}


Ion.with(getContext())
   .load("POST", MY_POST_URL)
   .setMultipartParameter("my_text_key", "my_text_value")
   .setMultipartParameter("my_text_key_2", "my_text_value_2")
   .addMultipartParts(fileParts);

尝试一下,希望对您有帮助。