multipart를 이용해서 서버에 이미지를 저장하는 예제를 하던 중 다음에러가 났습니다. "java.io.IOException: Posted content type isn't multipart/form-data"
검색으로 enctype="multipart/form-data"를 입렵하라고 해서 했는데도 안되네요...
<FORM action="http://server.com/cgi/handle"
enctype="multipart/form-data"
method="post">
</FORM>
고수님들 부탁드립니다 ~ 밑에는 제가 작성한 소스입니다.
[ 안드로이드 ]
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
import java.io.File;
public class MainActivity extends AppCompatActivity {
Button imgsendbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final String sdcard = Environment.getExternalStorageDirectory().getPath();
imgsendbtn = (Button)findViewById(R.id.imgSendBtn);
imgsendbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
HttpClient client = new DefaultHttpClient();
String url = "http://ec2-**-**-**-**.ap-northeast-2.compute.amazonaws.com:8080/jykim/imgupload.jsp";
HttpPost post = new HttpPost(url);
File glee = new File(sdcard+"/aroma.png");
FileBody bin = new FileBody(glee);
MultipartEntity multipart = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
multipart.addPart("images", bin);
post.setEntity(multipart);
client.execute(post);
} catch (Exception e){}
}
});
}
}
[ jsp 서버 ]
<FORM action="http://server.com/cgi/handle"
enctype="multipart/form-data"
method="post">
</FORM>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page
import="com.oreilly.servlet.MultipartRequest"
import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"
import="java.util.*"
import="java.io.*"%>
<%
String savePath = getServletContext().getRealPath("/imgupload/");
int sizeLimit = 5 * 1024 * 1024;
try {
MultipartRequest multi = null;
multi = new MultipartRequest(request,savePath,
sizeLimit, new DefaultFileRenamePolicy());
/* Enumeration formNames = multi.getFileNames();
String formName = (String) formNames.nextElement();
String fileName = multi.getFilesystemName(formName);
multi.getFile("images");*/
} catch (Exception e) {
out.println(e);
out.print("예외 상황 발생..! ");
}
%>