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

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

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

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

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

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

Передача значения переменой на сервер
Здраствуйте! Например есть у меня переменная, а её значение надо передать на...

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

Передача файлов через NFC
У меня нет познаний в Java и тем более в программировании под Android, но так...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2014, 11:38
Привет! Вот еще темы с решениями:

Самый простой метод отправки файлов на сервер
Какой это метод? Известен путь до файла, который нужно отправить. Как его...

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

Передача файлов на сервер
Всем привет! Ребят кто подскажет как реализовать отправку файла на...

Передача файлов на сервер
Здравствуйте. Хотелось бы написать программу, которая отправляла бы файлы на...


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

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

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