2017-07-09 105 views
0

我有工作VolleyMultipartRequest代碼,它將圖像和doc文件上傳到我的服務器。但是我提到了一個問題:我需要將一個圖像和文檔列表發送給我的服務器。我的意思是,例如,我選擇2個圖像和3個文檔文件,並按下「發送」按鈕,我只需要發送一個請求。請求排隊多部分請求列表

低於我的Java代碼來發送和JSON params用於在服務器中的一部分:

//---------------------Map<String, String> 
       params.put("orientation", "P"); 
       params.put("margin", "5"); 
       params.put("type", "image"); 
       params.put("copies", "1"); 
       params.put("width", "" + 150); 
       params.put("height", "" + 150); 
//-----------------------Map<String, DataPart> 
       params.put("file", new DataPart("image1.jpg", AppHelper.getFileDataFromDrawable(getBaseContext(), new BitmapDrawable(getResources(), bitmapList.get(0))), "image/jpeg")); 

和我的Json

file: File 
type: "image" 

回答

0

你可以使用這個自定義請求,覆蓋getByteData方法和發送內容作爲字節。檢查這個例子中,通過重寫getByteData附加在一個請求兩個不同的文件:

https://gist.github.com/anggadarkprince/a7c536da091f4b26bb4abf2f92926594#file-volleymultipartrequest-java

@Override 
protected Map<String, DataPart> getByteData() { 
    Map<String, DataPart> params = new HashMap<>(); 
    // file name could found file base or direct access from real path 
    // for now just get bitmap data from ImageView 
    params.put("avatar", new DataPart("file_avatar.jpg", AppHelper.getFileDataFromDrawable(getBaseContext(), mAvatarImage.getDrawable()), "image/jpeg")); 
    params.put("cover", new DataPart("file_cover.jpg", AppHelper.getFileDataFromDrawable(getBaseContext(), mCoverImage.getDrawable()), "image/jpeg")); 

    return params; 
}