多張圖片嗜傅,一張一張上傳(處理結(jié)果那有點蠢)

    private static final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png");
    private static OkHttpClient client = new OkHttpClient();
    private static UpLoadListener upLoadListener;
    private static List<PicBean> resultList = null;//圖片上傳后的結(jié)果集
    private static List<PicBean> picList = null;//需要上傳的圖片集合

向外暴露結(jié)果接口:

   public interface UpLoadListener {
        abstract void upLoadResult(List<PicBean> list);
        abstract void upLoadError(String message);
    }

初始化:

  upLoadListener = (UpLoadListener) context;

上傳圖片

     public void uploadImg(List<PicBean> list, final String xtype) {
        if (null == resultList)
            resultList = new ArrayList<>();
        else resultList.clear();
        picList = list;
        final ExecutorService exec = Executors.newFixedThreadPool(list.size());
        ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
        singleThreadExecutor.execute(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < picList.size(); i++) {
                    try {
                        final String localPath = picList.get(i).getLocalPath();
                        Runnable task = new Runnable() {
                            @Override
                            public void run() {
                                postPicData(xtype, localPath);
                            }
                        };
                        exec.submit(task);

                    } catch (Exception e) {

                    }
                }
                exec.shutdown();
             

            }
        });

    }
      public void postPicData(String xtype, String path) {
        MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
        File f = new File(path);
        Bitmap bitmap = BitmapTools.getimage(path);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
        byte[] data = bos.toByteArray();
        if (f != null)
            builder.addFormDataPart("Filedata", f.getName(), RequestBody.create(MEDIA_TYPE_PNG, data));
        Map<String, Object> map = Tools
                .getToken("ChuangXinQuChengNongJi360YuRunSiJi");
        String timestamp = map.get("timestamp").toString();
        String sha1 = map.get("token").toString();
        builder.addFormDataPart("xtype", xtype);
        builder.addFormDataPart("timestamp", timestamp);
        builder.addFormDataPart("token", sha1);
        MultipartBody requestBody = builder.build();
        //構(gòu)建請求
        Request request = new Request.Builder()
                .method("GET", null)
                .url(BaseUrl.photoUpLoadUrl)//地址
                .post(requestBody)//添加請求體
                .build();

        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, final IOException e) {//上傳圖片出錯
                error(e.getLocalizedMessage());
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {//上傳圖片操作成功
                String json = response.body().string();
                PicUpResult result = FastJsonTools.getBean(json, PicUpResult.class);
                if (null != result) {
                    int status = result.getStatus();
                    if (status == 111111) {//成功
                        String resultUrl = result.getUrl();
                        String resultThumb = result.getThumb();
                        success(resultUrl,resultThumb);
                    } else {
                        final String message = result.getMessage();
                         error(message);

                    }
                } else {
                      error("圖片上傳失敗");
                }
            }
        });
    }


圖片上傳成功處理

    /**
     * 圖片上傳成功
     * */
    private void success(String url,String thumb){
        PicBean bean = new PicBean();
        bean.setUrl(url);
        bean.setThumb(thumb);
        resultList.add(bean);
        ((Activity) context).runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (null != upLoadListener) {
                        if (resultList.size() == picList.size())
                            upLoadListener.upLoadResult(resultList);
               }
            }
        });
    }

圖片上傳失敗處理

   /**
     * 圖片上傳失敗
     * */
    private void error(final String message){
        ((Activity) context).runOnUiThread(new Runnable() {
            @Override
            public void run() {
                PicBean bean = new PicBean();
                bean.setUrl("");
                bean.setThumb("");
                resultList.add(bean);
                if (null != upLoadListener) {
                    if (resultList.size() == picList.size())
                         upLoadListener.upLoadError(message);
                }
            }
        });
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末袍冷,一起剝皮案震驚了整個濱河市咆畏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坞琴,老刑警劉巖作郭,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陨囊,死亡現(xiàn)場離奇詭異,居然都是意外死亡夹攒,警方通過查閱死者的電腦和手機(jī)蜘醋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咏尝,“玉大人压语,你說我怎么就攤上這事”嗉欤” “怎么了胎食?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長允懂。 經(jīng)常有香客問我厕怜,道長,這世上最難降的妖魔是什么蕾总? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任粥航,我火速辦了婚禮,結(jié)果婚禮上生百,老公的妹妹穿的比我還像新娘递雀。我一直安慰自己,他們只是感情好置侍,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布映之。 她就那樣靜靜地躺著,像睡著了一般蜡坊。 火紅的嫁衣襯著肌膚如雪杠输。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天秕衙,我揣著相機(jī)與錄音蠢甲,去河邊找鬼。 笑死据忘,一個胖子當(dāng)著我的面吹牛鹦牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播勇吊,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼曼追,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了汉规?” 一聲冷哼從身側(cè)響起礼殊,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎针史,沒想到半個月后晶伦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡啄枕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年婚陪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片频祝。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡泌参,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出常空,到底是詐尸還是另有隱情及舍,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布窟绷,位于F島的核電站锯玛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏兼蜈。R本人自食惡果不足惜攘残,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望为狸。 院中可真熱鬧歼郭,春花似錦、人聲如沸辐棒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泰涂,卻和暖如春鲫竞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逼蒙。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工从绘, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人是牢。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓僵井,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驳棱。 傳聞我的和親對象是個殘疾皇子批什,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345