如何取消图片和视频上传像whatsapp



我正在将图像和视频上传到php服务器上,使用multipart。我希望能够取消上传时,用户按下按钮,如whatsapp。

进度显示正确,但我只是想取消上传点击,但我不知道如何。

这是我当前的源代码:

private String uploadFile() {
    String responseString = null;
    int count;
       HttpClient httpclient = new DefaultHttpClient();
      HttpPost httppost = new HttpPost(serviceurl+"conversations.php");
    try {
        MultipartEntityBuilder entity = MultipartEntityBuilder.create();        

        File sourceFile = new File(imgstring);
        /* example for setting a HttpMultipartMode */
        entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
        if(Integer.parseInt(msgtype)==3)
        {
            entity.addPart("thumb", new FileBody(videothumb));
        }

        // Progress listener - updates task's progress
        MyHttpEntity.ProgressListener progressListener =
                new MyHttpEntity.ProgressListener() {
                    @Override
                    public void transferred(float progress) {
                       publishProgress((int) progress);
                       probar.setProgress((int) progress);

                    }
                };
        // Adding file data to http body
        entity.addPart("file", new FileBody(sourceFile));
        // Extra parameters if you want to pass to server
                entity.addTextBody("from_user",(prefid.getString("userid", null)),ContentType.TEXT_PLAIN);
        entity.addTextBody("to_user",userid,ContentType.TEXT_PLAIN);
        entity.addTextBody("message_type", msgtype,ContentType.TEXT_PLAIN); 
        httppost.setEntity(new MyHttpEntity(entity.build(),
                progressListener));
        // Making server call
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity r_entity = response.getEntity();
        int statusCode = response.getStatusLine().getStatusCode();
        if (statusCode == 200) {
            responseString = EntityUtils.toString(r_entity);
        } else {
            responseString = "Error occurred! Http Status Code: "
                    + statusCode;
        }
        // input.close();   
    } catch (ClientProtocolException e) {
        responseString = e.toString();
    } catch (IOException e) {
        responseString = e.toString();
    }
    return responseString;
}

调用asynTask的cancel方法来取消上传/下载的执行

相关内容

  • 没有找到相关文章

最新更新