-
[JAVA] 파일 업로드시 java 에서 권한 변경 (File permission)WORK 2020. 9. 28. 13:14
파일을 서버에 올리고, 해당 서버에서 그 파일을 읽어서 다른 작업을 해줘야 하는 경우가 있었다.
java를 통해서 파일을 올리고 나니 해당 파일 권한이 root 되어 있어서 permission 관련 에러로 제대로 실행되지 않았다.
관련 내용을 검색해 보니 서버 설정쪽에서 변경해 주는 경우도 있어보였으나, 서비스 중인 서버 설정을 변경하고 싶지 않아서 java 에서 작업해줄수 없는지 확인해 봤다.
그리고 찾은 두가지 방법을 정리해둔다.
화면에서 첨부한 파일을 가져와서 저장하고 권한 적용하는 내용을 아래에 정리했다.
파일 첨부 관련해서도 따로 작성하고 싶으니 여기서는 소스로만 간단히 지나간다.
권한관련 내용은 '//파일권한적용' 주석 내용만 확인하면 된다.1. java 에서 시스템 명령어 사용하기
서버에서 사용하는 명령어를 바로 java에서 사용할 수 있는 방법이다//첨부된 파일 List<MultipartFile> attachFile = request.getFiles("attachFile"); String destPath = "/data/"; //저장할 경로 String saveFile = ""; //저장할 파일명 for(MultipartFile aFile : attachFile){ String oriNm = aFile.getOriginalFilename(); //원본파일명 String ext = oriNm.substring(oriNm.lastIndexOf('.')); //첨부파일 확장자 saveFile = "test"+ext; //서버에 파일저장 File destFile = new File(destPath+saveFile); aFile.transferTo(destFile); //파일권한적용 Runtime.getRuntime().exec("chmod -R 777 " + destFile); }
2. File 클래스를 이용하는 방법
참고(ponyozzang.tistory.com/159)
//첨부된 파일 List<MultipartFile> attachFile = request.getFiles("attachFile"); String destPath = "/data/"; //저장할 경로 String saveFile = ""; //저장할 파일명 for(MultipartFile aFile : attachFile){ String oriNm = aFile.getOriginalFilename(); //원본파일명 String ext = oriNm.substring(oriNm.lastIndexOf('.')); //첨부파일 확장자 saveFile = "test"+ext; //서버에 파일저장 File destFile = new File(destPath+saveFile); aFile.transferTo(destFile); //파일권한적용 destFile.setWritable(true); //쓰기가능설정 destFile.setReadable(true); //읽기가능설정 }
참고로 false 값을 넣어주면 불가권한으로 변경된다.
'WORK' 카테고리의 다른 글
[JAVA/JAVASCIPT] 한글 깨짐 인코딩, 디코딩 (0) 2020.09.08 워크벤치(workbench)에서 readOnly가 되어 데이터 수정이 안될때 (0) 2020.08.18 [jQuery] SELECT BOX 셀렉트 박스 선택시 여러 값 VALUE 가져오기 (0) 2020.08.06 [JAVASCRIPT] 달력(calendar) 만들기, 날짜 요일 구하기 (0) 2020.07.27 [JAVA/JAVASCIPT] PC, 모바일(Mobile) 접속 디바이스 구분하기 (0) 2020.05.22