업로드 된 파일을 java의 특정 위치에 저장하려고합니다. 내가 a.pdf
을 업로드하면이 파일을 "/home/rahul/doc/upload/"
에 저장하고 싶습니다. 스택 오버플로에 대한 몇 가지 질문과 답변을 살펴 보았지만 솔루션에 만족하지 않습니다.업로드 된 다중 PDF 파일을 Java의 특정 위치에 저장하는 방법은 무엇입니까?
나는 Play Framework 2.1.2
으로 일하고 있습니다. 나는 servlet
으로 일하고 있지 않습니다.
업로드 중이지만 temp 디렉토리에 파일을 저장하고 있지만 임시 파일이 아닌 폴더에 해당 파일 저장소를 넣으 려합니다. 임시 파일이 아닌 폴더에 .pdf 같은 파일을 넣고 싶습니다.
public static Result upload() {
MultipartFormData body = request().body().asMultipartFormData();
FilePart filePart1 = body.getFile("filePart1");
File newFile1 = new File("path in computer");
File file1 = filePart1.getFile();
InputStream isFile1 = new FileInputStream(file1);
byte[] byteFile1 = IOUtils.toByteArray(isFile1);
FileUtils.writeByteArrayToFile(newFile1, byteFile1);
isFile1.close();
}
그러나이 솔루션에 만족하지 않고 여러 개의 doc 파일을 업로드하고 있습니다.
예 : 내가 그것을 임시 디렉토리 및 파일을 저장하고 다음 업로드 후 1 문서의 ab.docx을 업로드하는 것은 이것이다 :
을 그리고 위치이입니다입니다 : /tmp/multipartBody5886394566842144137asTemporaryFile
하지만 난이 원하는 : /upload/ab.docx
을 이 문제를 해결할 수있는 해결책을 알려주십시오.
이public static Result upload() {
Http.MultipartFormData body = request().body().asMultipartFormData();
FilePart upload = body.getFile("picture");
if (upload != null) {
String targetPath = "/your/target/upload-dir/" + upload.getFilename();
upload.getFile().renameTo(new File(targetPath));
return ok("File saved in " + targetPath);
} else {
return badRequest("Something Wrong");
}
}
가 BTW 당신은 몇 가지 검사를 구현해야합니다 :