我在我的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;
}
}
这是错误的,服务器工作又需要一个过程,我不想要。
答案 0 :(得分:0)
您想将单个Image文件上载到服务器或将多个文件上载到服务器的问题还不清楚。
因此,基本上,有一种非常简单的方法可以实现此目标。
要上传单个文件:-
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);
}
});
要上传多个文件:-
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);
尝试一下,希望对您有帮助。