안녕하세요 안드로이드와 웹서버 연동하여서 이미지와 텍스트를 전송하려고 하는데요.
HttpURLConnection의 multipart 이용해서 전송하려고하는데 텍스트 이미지하나는 잘 전송되는데 두번째 이미지 전송이 안되어서 문의 올립니다.
아래에 코드 일부 첨부합니다.
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true); // Allow Inputs
conn.setDoOutput(true); // Allow Outputs
conn.setUseCaches(false); // Don't use a Cached Copy
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("ENCTYPE",
"multipart/form-data");
conn.setRequestProperty("Content-Type",
"multipart/form-data;boundary=" + boundary);
conn.setRequestProperty("uploaded_file",
mfileNameList.get(i));
// 일반 텍스트 전송(String) 7
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"Name\""
+ lineEnd);
dos.writeBytes(lineEnd);
dos.writeBytes(Name + lineEnd);
// 이미지1
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
+ mfilePathList.get(i) + "\"" + lineEnd);
dos.writeBytes(lineEnd);
// create a buffer of maximum size
bytesAvailable = fileInputStream.available();
bufferSize = Math
.min(bytesAvailable, maxBufferSize);
buffer = new byte[bufferSize];
// read file and write it into form...
bytesRead = fileInputStream.read(buffer, 0,
bufferSize);
while (bytesRead > 0) {
dos.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable,
maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0,
bufferSize);
}
// 이미지2
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file1\";filename=\""
+ uploadFilePath
+ uploadFileName
+ "\""
+ lineEnd);
dos.writeBytes(lineEnd);
//int bytesRead1, bytesAvailable1, bufferSize1;
//byte[] buffer1;
// create a buffer of maximum size
bytesAvailable1 = fileThumbInputStream.available();
bufferSize1 = Math
.min(bytesAvailable1, maxBufferSize);
buffer1 = new byte[bufferSize1];
// read file and write it into form...
bytesRead1 = fileThumbInputStream.read(buffer1, 0,
bufferSize1);
while (bytesRead1 > 0) {
dos.write(buffer1, 0, bufferSize1);
bytesAvailable1 = fileThumbInputStream
.available();
bufferSize1 = Math.min(bytesAvailable1,
maxBufferSize);
bytesRead1 = fileThumbInputStream.read(buffer1,
0, bufferSize1);
}
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens
+ lineEnd);
BufferedReader rd = null;
rd = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "UTF-8"));
String line = null;
while ((line = rd.readLine()) != null) {
Log.i("Lifeclue", line);
}
fileInputStream.close();
fileThumbInputStream.close();
dos.flush();
dos.close();
서버쪽 공부하면서 해보고있는데 인터넷 찾아보면서 하다보니 어려움이 많습니다.
도움주시면 감사하겠습니다.