마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

한글 파일명으로 된 이미지를 업로드 할려고 하는데 업로드가 되지 않습니다.

0 추천

제목과 마찬가지로 파일명이 한글인 이미지를 서버에 업로드 시킬려고 하는데 한글 파일명이 깨지는게 아니라, 아예 업로드 자체가 안됩니다. 혹시 해결 방법을 도와주실 수 있을까 하여 글을 올려 봅니다.

안드로이드 업로드 소스 부분은

public void doFileUpload(){
		try{
			HttpClient httpClient = new DefaultHttpClient();
			String url = "http://180.227.155.25:8080/Server43.jsp?type=1";
			HttpPost post = new HttpPost(url);
			
			File saveFile = new File(Environment.getExternalStorageDirectory()+"/DCIM/Camera1/"+"한글로 된 파일명");
			
			FileBody bin = new FileBody(saveFile);
			
			MultipartEntity multipart = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

			multipart.addPart("images", bin);
		
			post.setEntity(multipart);

			HttpResponse response = httpClient.execute(post);
			HttpEntity resEntity = response.getEntity();

		} catch (Exception e){
			e.printStackTrace();
		}	
	}	

 이고요,

서버쪽 받는 jsp 부분은 

<%@ page import="java.io.*, com.oreilly.servlet.*, com.oreilly.servlet.multipart.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>upload test</title></head>
<body>
<%
	String type = request.getParameter("type");
	String dir = "";

	if(type.equals("1")){
		dir = application.getRealPath("/upload");
	} else if(type.equals("2")){
		dir = application.getRealPath("/facephoto");
	}

	int max = 5*1024*1024;
	
	MultipartRequest m = new MultipartRequest(request, dir, max, "UTF-8");

%>
</body>
</html>

입니다. 

영문 파일명은 업로드가 되고 있습니다. 그럼 도움 부탁드립니다. 수고하세요!

다크실프 (180 포인트) 님이 2014년 12월 26일 질문

1개의 답변

0 추천
한글이 깨진다면 base64로 인코딩해서 올리고

서버에서 디코딩해서 저장하심 됩니다.
nicehee (73,100 포인트) 님이 2014년 12월 26일 답변
답변 감사합니다.
지금 문제가 서버에 올라간 파일의 파일명이 깨져서 보이는게 아니라 아예 업로드 자체도 안되는데 그러면 파일명이 깨졌기 때문에 업로드도 안된다는 말씀이신가요?
...