【问题标题】:Changing play.tmp in Play! Framework don't change upload default folder在 Play 中更改 play.tmp!框架不要更改上传默认文件夹
【发布时间】:2014-07-23 17:52:07
【问题描述】:

我正在尝试将默认文件夹更改为我上传的文件所在的位置。在我的 application.conf 中,我设置了 play.tmp=/my/desired/location/ 但是当我上传文件时,它总是转到默认文件夹,根据玩!文档,/tmp/

我正在使用使用 Scala 2.10.3 构建的 play 2.2.2(运行 Java 1.8.0)

上传控制器:

public static Result uploadFile() {
    MultipartFormData body = request().body().asMultipartFormData();
    FilePart audioFile = body.getFile(Constants.KEY_UPLOAD_AUDIO_FILE);
    if (audioFile != null) {
        String fileName = audioFile.getFilename();
        String contentType = audioFile.getContentType();
        File file = audioFile.getFile();
        return ok("File uploaded to: " + file.getAbsolutePath());
    } else {
        return badRequest("File not found");
    }
}

感谢大家的帮助。

【问题讨论】:

    标签: java upload playframework playframework-2.0


    【解决方案1】:

    上传后的常用方法是将文件从tmp文件夹移动到目标文件夹,最好放在你的application.conf,即:

    upload.path = "/my/desired/location/"
    

    所以就在您的 return 之前,您可以将其移动到正确的位置:

    String uploadPath = Play.application().configuration().getString("upload.path", "/tmp/");
    file.renameTo(uploadPath + fileName)
    

    【讨论】:

    • 谢谢,但我已经尝试过这里建议的方法:[stackoverflow.com/questions/15135850/…,我想避免 Apache commons。我想知道为什么 play.tmp=/my/desired/location/ 不能正常工作,或者我遗漏了一些细节。
    • 1) Apache commons 通过 Play 交付给您,2) 无论如何...renameTo 方法不是 commons 部分来自 Java.io.File API,3) 抱歉,不知道为什么play.tmp 配置不起作用
    • 是的,就我而言,由于我在不同的分区中有 /my/desired/location/,我需要使用 Apache Commons,没问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2016-05-30
    • 2023-03-23
    • 2012-09-23
    • 1970-01-01
    • 2012-11-14
    • 2013-01-07
    相关资源
    最近更新 更多