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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
derec
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 74
#1

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

14.07.2014, 11:38. Просмотров 1367. Ответов 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 & 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 чтоб отправить файл опред место.

как можно еще передавать файлы если не так??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2014, 11:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача файлов на сервер (Программирование Android):

Передача изображения на сервер - Программирование Android
Здравствуйте уважаемые форумчане. Я все пытаюсь передать изображение на сервер, но никак не могу разобраться, что происходит, вот мой код: ...

Передача фото по сети на сервер - Программирование Android
У меня такая задача : нужно реализовать такое приложение чтобы водитель мог сфотографировать на улице обьект здание и тп и фото этого...

Передача значения переменой на сервер - Программирование Android
Здраствуйте! Например есть у меня переменная, а её значение надо передать на сервер. Как это реализовать? Добавлено через 3 часа 9...

Передача HTML как строки из Андроида на сервер - Программирование Android
Приложение андроида принимает html-строку, которую надо передать на сервер для парсинга. Собственно алгоритм приема html и его передачи...

Передача файлов через NFC - Программирование Android
У меня нет познаний в Java и тем более в программировании под Android, но так уж вышло что мне нужно сделать приложение, которое передаёт...

Передача файлов через BlueTooth OPP / ContentResolver - Программирование Android
Друзья, помогите пожалуйста!!! Уже второй день пляшу с бубном. :( Передаю файл через BT OPP примерно так: ContentValues values...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2014, 11:38
Привет! Вот еще темы с ответами:

Как загрузить на Ftp сервер список файлов? - Программирование Android
Этот код перестает работать после передачи первого файла. Помогите разобраться в чем дело. @Override protected Void...

Передача файлов на сервер - C++
Здравствуйте. Хотелось бы написать программу, которая отправляла бы файлы на сервер. На пример на мой сайт. Это всё нужно сделать без...

Передача файлов на сервер - C#
Всем привет! Ребят кто подскажет как реализовать отправку файла на сервер(windows), на сервере стоит БД MS SQL и я к ней успешно...

Клиент сервер передача файлов - Delphi
Как реализовать передачу файлов между клиентом и сервером?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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