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

Передача файлов на сервер - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Программно пробросить порт на роутере через WiFi? http://www.cyberforum.ru/android-dev/thread1226914.html
Как программно пробросить порт на роутере через WiFi?
Программирование Android Как сделать, чтобы кнопка добавлялась не в каждую строку ListView, а только в самый низ? Здравствуйте, форумчане. Как сделать чтобы кнопка не добавлялась в каждую строку ListView. Кнопка нужна только под ListView. XML код <RelativeLayout ... http://www.cyberforum.ru/android-dev/thread1226861.html
Программирование Android При проверке элемента массива на пустоту вылетает исключение
Всем привет. Есть сервис с задачей (Runnable) определить геолокацию, которая запущена в основном потоке приложения (runOnUiThread()). В сервисе инициализирован строковый массив, который будет...
Раздувание шаблона Программирование Android
Подскажите, как оно происходит? Что вообще значит раздувание? Это создание в ресурсах экземпляра объекта описанного в xml?
Программирование Android Не увеличиваются иконки на различных устройствах http://www.cyberforum.ru/android-dev/thread1226719.html
Закинул в папки drawable иконки: ldpi-48; mdpi - 64; hdpi - 96; xhdpi - 128; xxhdpi - 192, но при тестировании на различных устройствах размер иконок не меняется. Помогите пожалуйста.
Программирование Android Создание ListView из EditText Выдает ошибку в строке при создании адаптера. Пишет, что не распознает конструкцию ArrayAdapter Ниже прилагаю код. Список должен создаваться по мере ввода данных с клавиатуры. Пожалуйста, подскажите... подробнее

Показать сообщение отдельно
derec
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 74

Передача файлов на сервер - Программирование Android

14.07.2014, 11:38. Просмотров 1386. Ответов 0
Метки (Все метки)

Здравствуйте, такой вопрос возник.
Нужно из приложение закачивать файлы на сервер.
сколько я не бился но всетаки нашел примерный скрипт как отправлять файлы.
проблемы в том что там нужно составлять POST запрос.
если закачивать просто файлы то все получается.
но мне нужно еще и передавать параметры на сервер а вот тут уже возникают проблемы.
я не могу нормально сформировать запрос.
просто не понимаю как работает эта система.
Существуют ли какие нибудь другие способы передачи файлов на сервер???


вот сейчас пользуюсь этим:
JAVA
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
99
100
101
102
103
104
105
package com.khv.togu;
 
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.HttpURLConnection;
import java.net.URL;
 
import android.os.AsyncTask;
import android.util.Log;
 
public class upload_files {
    String pathToOurFile;
    String gruppa;
upload_files(String path, String grup){
    pathToOurFile=path;
    gruppa=grup;
    
}
    Thread myThread = new Thread(new Runnable() {
          public void run() {
        HttpURLConnection connection = null;
        DataOutputStream outputStream = null;
        DataInputStream inputStream = null;
        
        String urlServer = "http://www.***.ru/upload.php";
        //String urlServer = "";
        String lineEnd = "\r\n";
        Log.d("testo",pathToOurFile);
        String twoHyphens = "--";
        String boundary =  "*****";
         
        int bytesRead, bytesAvailable, bufferSize;
        byte[] buffer;
        int maxBufferSize = 1*1024*1024;
         
        try
        {
            FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile) );
         
            URL url = new URL(urlServer);
            connection = (HttpURLConnection) url.openConnection();
         
            // Allow Inputs &amp; Outputs.
            connection.setDoInput(true);
            connection.setDoOutput(true);
            connection.setUseCaches(false);
         
            // Set HTTP method to POST.
            connection.setRequestMethod("POST");
         
            connection.setRequestProperty("Connection", "Keep-Alive");
            connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);
         
            outputStream = new DataOutputStream( connection.getOutputStream() );
            outputStream.writeBytes(twoHyphens + boundary + lineEnd); //                                     |
            outputStream.writeBytes("Content-Disposition: form-data; name=\"gruppa\"" + lineEnd); / / | 
            outputStream.writeBytes(lineEnd); //                                                                         |
            outputStream.writeBytes(gruppa);//          это параметры которые мне нужно передать, из-за этого скрипт не работает                                                                                                                    |
            
            outputStream.writeBytes(twoHyphens + boundary + lineEnd);
            outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile +"\";gruppa=\""+gruppa+"\";" + lineEnd);
            outputStream.writeBytes(lineEnd);  эта часть работает
            
         Log.d("piz", pathToOurFile+" "+gruppa);
            bytesAvailable = fileInputStream.available();
            bufferSize = Math.min(bytesAvailable, maxBufferSize);
            buffer = new byte[bufferSize];
         
            // Read file
            bytesRead = fileInputStream.read(buffer, 0, bufferSize);
         
          
            while (bytesRead > 0)
            {
                outputStream.write(buffer, 0, bufferSize);
                bytesAvailable = fileInputStream.available();
                bufferSize = Math.min(bytesAvailable, maxBufferSize);
                bytesRead = fileInputStream.read(buffer, 0, bufferSize);
            }
         
            outputStream.writeBytes(lineEnd);
            outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
         
            // Responses from the server (code and message)
            int serverResponseCode = connection.getResponseCode();
            String serverResponseMessage = connection.getResponseMessage();
         
            Log.d(""+serverResponseCode,serverResponseMessage);
            
            fileInputStream.close();
            outputStream.flush();
            outputStream.close();
            Log.d("d", "ok");
        }
        catch (Exception ex)
        {
            //Exception handling
            ex.printStackTrace();
        }
 
          }
          });
    }

upload.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
$gruppa =$_POST['gruppa'];
$anabolik = basename( $_FILES['uploadedfile']['name']);
$target_path  ="grupp/".$gruppa."/";
 
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
{
    echo "The file ".  basename( $_FILES['uploadedfile']['name']).
 " has been uploaded";
}
else
{
    echo "There was an error uploading the file, please try again!";
}
?>
нужно получить параметр gruppa чтоб отправить файл опред место.

как можно еще передавать файлы если не так??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru