有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获取文件的完整路径来读取它并将其数据保存在数据库中?

我正在尝试读取Excel文件&;使用Spring4+POI将其数据上传到数据库

此功能的流程为:

  1. JSP(选择excel文件)
  2. 在控制器上获取该文件(具有完整路径)
  3. 传递到服务以提取数据

问题:: 我只得到控制器上的文件名,但我需要该文件的完整路径

例如:我在控制器中获取Book.xls,但我希望控制器中的D:\Book.xls读取其数据

我需要将此完整路径传递到-->

FileInputStream file = new FileInputStream(new File("D:\\Book.xls"));

因为“Book.xls”,它给了我一个例外: 例外:书。xls(系统找不到指定的文件)

JSP代码:

<form ... enctype="multipart/form-data">
<input name="file" type="file" />

你能帮我找到所选文件的路径吗


共 (1) 个答案

  1. # 1 楼答案

    出于安全原因,不允许上载带有完整路径的文件(客户端目录结构)

    相反,你能做的是

    1. 上传文件(你有,已经上传)
    2. 将其存储在服务器端位置
    3. 从那里读

    如果需要,我会给代码,但首先尝试这个

    您可以使用apache commons io的copyFileapi来实现这一点

    谢谢

    更新:-我的工作代码

        for (MultipartFile multipartFile : files) {
            System.out.println(multipartFile.getOriginalFilename()+"       "+multipartFile.getContentType()+" "+multipartFile.getName());
            try {
                    multipartFile.transferTo(new File(filePathToSave+"/"+multipartFile.getOriginalFilename()));
            } catch (IllegalStateException | IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }
        }
    

    这里的“filePathToSave”是您要保存文件的路径,再次从同一路径读取