【问题标题】:How send key value in addMultipartParts Ion Koush library?如何在 addMultipartParts Ion Koush 库中发送键值?
【发布时间】:2018-08-22 12:28:17
【问题描述】:

我在我的 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;
            }
   }

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

【问题讨论】:

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


    【解决方案1】:

    您的问题并不清楚,您希望将单个图像文件上传到服务器或将多个文件上传到服务器。

    所以基本上,有一个非常简单的方法可以实现这个目标。

    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 = new 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);
    

    试试这个,希望对你有帮助。

    【讨论】:

    • 感谢 Abhinav 回答我的问题。问题是我想将多个文件上传到服务器,并且在为“addMultipartParts”制作的 Ion Library 函数中没有像 setMultipartFile 一样放置密钥的参数。
    • 你可以检查答案,我现在已经编辑了,还寻找后端代码他们如何提供一些支持来实现这一点。
    • 谢谢阿比纳夫。但是我已经一次发送了多个文件,我的问题出在服务器端,因为当我发送多个文件时,我无法放置一个 KEY 来识别你现在得到的服务器端的文件数组?因此我使用这个函数 foreach($fileObjects as $fileObject) { if (is_file($fileObject)) { $imageList[] =$fileObject; } 其他 { $id = $fileObject; } } 但我不想使用你现在不明白的?
    • 好的,所以你基本上是在寻找可以处理这些东西的后端代码,对吧??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多