2

application.conf ファイルで attachments.path プロパティを指定しようとしましたが、効果がありませんでした。

play 2.0.1 のドキュメントでは、アップロードされたファイルのディレクトリを変更する方法を説明しているものは見つかりませんでした。

何か不足していますか?

4

1 に答える 1

10

そのような変数はありませapplication.confんが、簡単に追加してメソッドで使用できます。好きなように呼び出します。

の改行application.conf:

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

ドキュメントのサンプルによると:

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と、名前を変更する前にチェックを実行して、ランダムな上書きを防ぐことができます。

于 2012-06-09T10:25:31.533 に答える