Форум программистов, компьютерный форум CyberForum.ru

Загрузка файлов на сервер и progressbar - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Первое приложение http://www.cyberforum.ru/android-dev/thread730502.html
Здравствуйте. Пытаюсь программировать на anroid. Создал небольшое приложения для начала, но вот не хочет запускаться :( Через LogCat ошибок нет при дебаге. Может быть подскажите в чем загвоздка? Само приложение: package com.example.first; import android.app.Activity; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.View;
Android Платная версия приложения Хочу сделать платную версию приложения (отсутствие рекламы), как правильно это сделать? Как на основе существующего проекта сделать новый. Подскажите пожалуйста. Спасибо. http://www.cyberforum.ru/android-dev/thread730416.html
Пользуетесь ли вы какими-нибудь "движками"? Android
Что-нибудь вроде andengine или libgdx. И хотел бы узнать ваше мнение про такие вещи... вооот. Хочу что-нибудь веселенькое сбацать... вооот...:)
Android Мультитач на все случаи жизни
Здравствуйте. Как пишет Рето Майер в книге Android2…. чтобы выяснить позицию каждого последующего прикосновения ( если я не ошибаюсь - не зависимо от количества пальцев на экране) нужно инициализировать все свойства прикосновения Листинг 15.26. Получение координат соприкосновения с экраном int xPos = -1; int yPos = -1; if (event.getPointerCount() > 1) { int actionPointerId = action &...
Android Поэлементный вывод строки http://www.cyberforum.ru/android-dev/thread730169.html
Добрый день! Подскажите, пожалуйста, как правильно действовать в такой ситуации: Используя метод вида Editor editor.putStringSet(...) сохранил несколько строковых значений. Потом пытаюсь вычитать полученные строки в поля EditText (каждая строка - в своё поле). В одно поле вывалить все строки сразу методом вида TextField.setText(Settings.toString()); получается, а вот каждую строку в своё...
Android Создание нестандартного GUI Всем добрый вечер! Мне очень нравятся интерфейсы программ таких, как Opera, Dolphin Browser, Вконтакте и прочее, и очень хочется реализовать что-то подобное самостоятельно, но я смутно предоставляю, как делать выпадающие меню, сдвигающие сдвигающиеся экраны, как оформлять или создавать красивые кнопки, табы и прочее… Кто что-то подобное делал в своих программах или знает хорошие статьи?... подробнее

Показать сообщение отдельно
Chipito
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 29
14.12.2012, 01:19     Загрузка файлов на сервер и progressbar
Сообственно имеется код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
    public void Uploads(String d) throws UnsupportedEncodingException, MalformedURLException
                {
 
                   
                     String dir = URLEncoder.encode(d, "utf-8");
                
 
                    try {
             
                    dsize=0;
                     
 
                            
                        HttpClient httpclient = getThreadSafeClient();
                        HttpPost postRequest = new HttpPost(
                                "url");
                    //  ByteArrayBody bab = new ByteArrayBody(data, filePath);
                        File file = new File(filePath);
                          
                         FileBody bin = new FileBody(file);
                        /* InputStream inputStream = bin.getInputStream();
                         long totalSize = bin.getContentLength();
                         pr.setMax((int) totalSize);
                         byte[] buffer = new byte[2048];
                         int bufferLength = 0;
                         while ((bufferLength = inputStream.read(buffer)) > 0) {
                                
                             dsize+= bufferLength;
                             System.out.println(dsize);
                            
                                pr.setProgress (dsize);
                            }
                           inputStream.close(); */
                        MultipartEntity reqEntity = new MultipartEntity(
                                HttpMultipartMode.BROWSER_COMPATIBLE);
                        reqEntity.addPart("images[]", bin);
                        postRequest.setEntity(reqEntity);
                        HttpResponse response = httpclient.execute(postRequest);
                        BufferedReader reader = new BufferedReader(new InputStreamReader(
                                response.getEntity().getContent(), "UTF-8"));
                        
                         
                        
                        String sResponse;
                        StringBuilder s = new StringBuilder();
 
                        while ((sResponse = reader.readLine()) != null) {
                            s = s.append(sResponse);
                        }
                        System.out.println("Response: " + s);
                    
 
                    } catch (Exception e) {
                    }
                }
    }
Проблема в том что при маленьких размерах файла, progressbar работает нормально( то что закоментировано)
Но если размер файла 2-3 мб, то отображается неправильно. Как в данной ситуации лучше получить количество залитых байт?

Добавлено через 1 час 45 минут
Разобрался, сделал выполнение пост запроса в отдельном потоке:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
    public void Uploads(String d) throws UnsupportedEncodingException, MalformedURLException
                {
 
                   
                     final String dir = URLEncoder.encode(d, "utf-8");
                
 
                    try {
                    dsize=0;
                    int count=0;
                     
 
             
                    //  ByteArrayBody bab = new ByteArrayBody(data, filePath);
                        File file = new File(filePath);
                         final FileBody bin = new FileBody(file);
                           new Thread(new Runnable() {
                                public void run() {
                                    
                                    HttpClient httpclient = getThreadSafeClient();
                                    HttpPost postRequest = new HttpPost(
                                            url);
                                    MultipartEntity reqEntity = new MultipartEntity(
                                            HttpMultipartMode.BROWSER_COMPATIBLE);
                                    reqEntity.addPart("images[]", bin);
                                    postRequest.setEntity(reqEntity);
                                     HttpResponse response=null;
                                     try {
                                        response = httpclient.execute(postRequest);
                                    } catch (ClientProtocolException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                        BufferedReader reader = null;
                                        try {
                                            reader = new BufferedReader(new InputStreamReader(
                                                    response.getEntity().getContent(), "UTF-8"));
                                        } catch (UnsupportedEncodingException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        } catch (IllegalStateException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        } catch (IOException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        }
                                        String sResponse;
                                        StringBuilder s = new StringBuilder();
                                      
                                       try {
                                        while ((sResponse = reader.readLine()) != null) {
                                                
 
                                                s = s.append(sResponse);
                                            }
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                        try {
                                            Check(currdir);
                                        } catch (UnsupportedEncodingException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        }
                                        System.out.println("Response: " + s);
                                }
                            }).start();
                          InputStream inputStream = bin.getInputStream();
                             long totalSize = bin.getContentLength();
                             pr.setMax((int) totalSize);
                             byte[] buffer = new byte[1024];
                             int bufferLength = 0;
                             while ((bufferLength = inputStream.read(buffer)) > 0) {
                                
                                 dsize+= bufferLength;
                                 System.out.println(dsize);
                                    pr.setProgress (dsize);
                                
                                }
                                
                             inputStream.close();
                    
 
                    
 
                    } catch (Exception e) {
 
                    }
                }
 
        
    
    }
Добавлено через 1 час 41 минуту
http://toolongdidntread.com/android/...-progress-bar/
Вот еще кому интересно, реализация как раз под метод загрузки файлов
http://vikaskanani.wordpress.com/201...st-multi-part/
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru