java - 如何在 Play Framework 中复制上传的文件?

标签 java linux file-io playframework playframework-2.0

我正在尝试在 Play 2.0.4 中进行基本文件上传。文件上传本身有效,我设法获得了一个 File 对象。但是,我想将此文件复制到 /public/images/ 目录中。我怎样才能做到这一点?以下代码不产生任何结果或错误:

    FilePart picture = body.getFile("file");
    File file = picture.getFile();
    try
    {
        File dest = new File("../../public/images/new.png");
        Logger.debug("Got dest: " + dest.getAbsolutePath() );
        file.renameTo(dest);
        return ok( file.getAbsolutePath() );
    }
    catch (Exception e)
    {
        e.printStackTrace();
        return ok(images.render(false, e.toString()));
    }

最佳答案

File.renameTo() 如果失败则返回 false,但没有详细的错误信息所以很糟糕。

试试 java.nio.file.Files.move(source, target, StandardCopyOption.ATOMIC_MOVE);如果它失败,它会抛出一个异常,所以你会知道哪里出了问题。

关于java - 如何在 Play Framework 中复制上传的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949500/

相关文章:

java - libgdxcamera.rotateAround后的固定点

c++ - 如何检查文件是否经过 gzip 压缩?

java - 使用显示标记从 JSP 页面中的行获取值

java - GwtQuery droppable 编译 GWT 2.6.1 错误

java - 在 OptaPlanner 6.1.0 中加载现实世界的 XML 问题

design-patterns - 保存和写入不同文件格式的模式

python - 第一次写脚本,不知道用什么语言(解析excel等文件)

arrays - 查找正在运行的进程的 PID 并将其存储为数组

c - 如何测量 Linux 上从一个内核到另一个内核的进程迁移时间?

mysql - 无法在 Linux 上启动 mysql - 无法访问 ‘/var/log/mysqld.log’ :