본문 바로가기

java

[JAVA] File MD5 checksum File의 무결성을 검증하기 위하여 MD5 checksum을 사용할 일이 있을 수 있다. 인터넷의 어딘가에서 줏어다가 썼는데, 앞자리가 0인 경우에 0이 사라지고 31글자로 처리되는 경우가 있어서 이 부분을 String.format %032x를 사용하는 방식으로 처리하여 정리해 놓는다. byte[] data = Files.readAllBytes(file.toPath()); byte[] hash = MessageDigest.getInstance("MD5").digest(data); String checksum = String.format("%032x", new BigInteger(1, hash)); 더보기
java.io.File을 MutlipartFile로 변환 File file = new File("/path/to/file"); FileItem fileItem = new DiskFileItem("mainFile", Files.probeContentType(file.toPath()), false, file.getName(), (int) file.length(), file.getParentFile()); IOUtils.copy(new FileInputStream(file), fileItem.getOutputStream()); MultipartFile multipartFile = new CommonsMultipartFile(fileItem); 더보기
JAVA, .NET, PHP, JS(NodeJS, ES5, ES6) 에서 UTF-8 파일 다운로드 인코딩, RFC2231 1. 개요 각 언어별로 RFC2231 인코딩을 해보자. 브라우저로 하여금 현재 응답이 파일 다운로드라는것을 알려주기 위해서 우리는 Header에 ContentType과 ContentDispotion등을 이용한다. 보통 다운로드를 제공할때 Header에 Content-Dispostion: attachment; filename="파일명.html" 의 형식으로 많이들 사용하지만, 사실 이는 표준을 준수한것이 아니다. 표준을 준수하기 위해서는 RFC2231표준에 맞게 인코딩된 파일명을 아래와 같은 형식으로 보내줘야한다. 파일명을 Content-Disposition: attachment; filename*=UTF-8''foo-a%cc%88.html 위의 형식으로 보내줘야 한다. 이상해보이긴 하지만 이게 표준이다... 더보기