java - java中如何将上传的多个pdf文件存储到特定位置?

标签 java file-upload playframework playframework-2.0 playframework-2.1

我想将上传的文件存储在java中的特定位置。如果我上传a.pdf,那么我希望它将其存储在“/home/rahul/doc/upload/”。我经历了一些堆栈溢出的问题和答案,但我对解决方案不满意。

我正在使用 Play Framework 2.1.2。我不使用 servlet

我正在上传,但它正在将文件存储到临时目录中,但我希望该文件存储到一个文件夹中,而不是临时文件,我希望该文件像 a.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();

}

但我对此解决方案不满意,我正在上传多个文档文件。

例如。我上传一份文档 ab.docx,然后上传后它存储临时目录,文件是这样的:

uploaded file as temp

它的位置是这样的:/tmp/multipartBody5886394566842144137asTemporaryFile

但我想要这个:/upload/ab.docx

告诉我一些解决方案来解决这个问题。

最佳答案

一切都是正确的,因为最后一步您需要将临时文件renameTo到您的上传文件夹中,您不需要围绕流进行操作,就像这样简单:

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");
    }
}

顺便说一句,如果 targetPath 不存在,您应该进行一些检查,以防止错误和/或覆盖。典型的方法是如果同名文件已存在,则增加文件名,例如发送 a.pdf 三次应将文件保存为 a.pdfa_01.pdfa_02.pdf

关于java - java中如何将上传的多个pdf文件存储到特定位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457518/

相关文章:

scala - 尝试解析 Future 响应时出了什么问题?

java - 如何使用 Oracle DB 在 Spring/mybatis 应用程序中设置默认模式?

java - 对动态代理的调用应该转到动态类型的方法还是静态类型的方法?

java - 如何从 Spring Boot 配置服务器提供的其他属性文件中的 application.properties 获取 key ?

css - 如何自定义输入类型文件按钮和文本框

javascript - 如何限制.exe.png或将.exe文件重命名为png文件以在 Angular 8中上传

openshift 上的 java play 2.3 永远不会更新

java - 是否可以调用默认构造函数而不是零参数构造函数?

PHP:无法上传 ZIP 文件

java - Twilio 接收短信/无数据发布(java 中的 Play Framework )