2012-06-08 4 views

답변

10

application.conf에는 이러한 변수가 없지만 쉽게 추가하고 방법으로 사용할 수 있습니다.

새로운 라인 application.conf에 : 당신이 할 수있는이 방법을 사용

public static Result upload() { 
    MultipartFormData body = request().body().asMultipartFormData(); 
    MultipartFormData.FilePart picture = body.getFile("picture"); 
    if (picture != null) { 
     String fileName = picture.getFilename(); 
     String contentType = picture.getContentType(); 
     File file = picture.getFile(); 

     // added lines 
     String myUploadPath = Play.application().configuration().getString("myUploadPath"); 
     file.renameTo(new File(myUploadPath, fileName)); 

     return ok("file saved as " + myUploadPath + fileName); 
    } else { 
     flash("error", "Missing file"); 
     return redirect(routes.Application.uploadform()); 
    } 
} 

를 또는로 이름을 바꾸기 전에 filename clash 검사를 수행해야합니다

myUploadPath = "/home/your-account/some/custom/upload/folder/" 

documentation sample에 따라 당신이 즉, 원하는대로 호출 임의의 덮어 쓰기를 방지합니다.

+3

답변을 주셔서 감사합니다, Marcus,하지만 이것이 내 문제를 해결하지 못했습니다. <그림의 예제>가있는 폴더를 제어해야합니다. 그러나, 나는 목표/시작과 함께 응용 프로그램을 시작하여 문제를 해결 - Djava.io.tmpdir = <내 tmp 폴더 경로> –

+0

오, 당신이 tmp 디렉토리를 제어해야한다고 지정하지 않았다 :) 팁 주셔서 감사하지만, 여전히 샘플을 사용하여 tmp에서 업로드 된 파일을 디스크의 exacto 위치에 저장합니다. – biesior

+0

아니요, 죄송합니다. 잘 지정하지 않았습니다. 하지만 코드가 유용 할 수 있습니다. –

관련 문제