Загрузка изображения на сервер с данными пользователя

1

Я пытаюсь загрузить информацию пользователя на сервер. Я могу загрузить изображение. Но в то время я не могу приложить данные пользователя с этим. Я использую приведенный ниже код для загрузки изображения. поэтому Как добавить данные пользователя на сервер?

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);

    // Enable POST method
    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=\"userfile\";filename=\"" + pathToOurFile +"\"" + lineEnd);
    outputStream.writeBytes(lineEnd);

    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();

    System.out.println(serverResponseCode);
    System.out.println(serverResponseMessage);
    fileInputStream.close();
    outputStream.flush();
    outputStream.close();
    }
    catch (Exception ex)
    {
    //Exception handling
    }
Теги:

1 ответ

2

поместите свою информацию в пакет и добавьте эту информацию в URL:

public String makeUrl(String url, Bundle params, Context context) {
url = yourBaseURL + url + "?" + encodeUrl(params);
Log.d("my url is", " URL: " + url);
return url;
}

и кодировать метод url

public String encodeUrl(Bundle parameters) {

try {
if (parameters == null) {
return "";
}
StringBuilder sb = new StringBuilder();
boolean first = true;
for (String key : parameters.keySet()) {
if (first)
first = false;
else
sb.append("&");
Log.d(key + " = ", "" + parameters.getString(key));
sb.append(URLEncoder.encode(key) + "="
                        + URLEncoder.encode(parameters.getString(key)));
}

return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
  • 0
    Я должен передать параметры, такие как имя пользователя, пароль, изображение профиля ...... Могу ли я добавить имя пользователя, пароль и изображение в качестве байтового массива в комплект? ... Если да ... Как я могу это сделать?
  • 0
    Я также сталкиваюсь с той же проблемой.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню