파일 업로드 및 쓰기는 Content-type을 설정해야 합니다.

자세히 보기
오늘 파일 업로드 문제를 해결합니다. 코드는 다음과 같습니다.
 
@RequestMapping(value = "/upload", method = RequestMethod.POST)
    public String doUpload(Role role, @RequestParam("file") MultipartFile file, HttpServletResponse resp) {
        if (!file.isEmpty()) {
            try {
                InputStream in = file.getInputStream();
                int temp;
                while ((temp = in.read()) != -1) {
                    System.out.write(temp);
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
	resp.setContentType("text/html; charset=UTF-8");
        JSONObject json = new JSONObject();
        json.put("result", "upload ok");
        try {
            resp.getWriter().println("");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

위의 빨간색 부분은 "resp.setContentType("text/html;charset=UTF-8"),이전에 내용을 되돌려 주는 형식을 설정하지 않았기 때문에 IE 브라우저를 제외한 다른 브라우저가 모든 오류를 올릴 수 있습니다.한참 동안 디버깅을 했는데 정말 시간을 낭비했다. 특별히 이것을 공유하는 것도 자신에게 경고하는 셈이다.

좋은 웹페이지 즐겨찾기