使用文件选择器选择数据输入文件

时间:2016-03-07 08:11:24

标签: java jsp

以下是完整的问题,因为我在前一个问题中Get a path value in java file from html/jsp稍微问了一下,这里我基本上将输入文件作为Excel工作表,此工作表充当源数据库,并且此文件更改每天都会发送一份新的Excel表格。现在我直接使用下面的代码。

public class DBConnection {
    private Connection conn, conn1;
    private Statement stmt;
    private ResultSet rs;
    private PreparedStatement ps, ps1;
    private String excelPath = "D:/MyScouceExcel.xls";
}

但不是这样,我想尝试在我的索引页面和按钮(如下所示)中提供文件选择器,当我选择该文件并点击按钮时,excelPath应该设置为那道路。

<input type="file" id="inputFile" name="inputFile"/>
<input type="button" value="set"/>

我不想上传文件,只是路径就够了。

在Java类中,我知道如何处理excel数据,因为我已经使用Apache-poi。我需要知道的是如何通过这条道路。请让我知道我该怎么做。

由于

1 个答案:

答案 0 :(得分:1)

我希望以下代码能为您服务。首先,您需要一个servlet来读取服务器的文件结构;您可能需要编辑以下代码以根据需要进行修复;

import java.io.File;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = { "/serverpath" })
public class ServerPath extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {

        String link = "<li><a href=\"serverpath?path=%s\">%s</a>&nbsp;<input type=\"button\" value=\"select\" onclick=\"window.opener.document.getElementById('path').value = '%s'; window.close();\" /></li>";
        response.setContentType("text/html");
        try {
            String path = req.getParameter("path");
            if (path == null) {
                // take disk drives, for linux / is enough for me
                response.getOutputStream().print(String.format(link, "/", "/", "/"));
            } else {
                File file = new File(path); //read clicked file path and its sub paths.
                if (file.isDirectory()) {
                    File[] subDir = file.listFiles();
                    for (File file2 : subDir) {
                        if (file2.isDirectory()) {
                            response.getOutputStream().println(
                                    String.format(link, file2.getAbsolutePath(), file2.getAbsolutePath(), file2.getAbsolutePath()));
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

html / jsp页面示例;

<input type="text" id="path" />
<input type="button" value="Select" onclick="window.open('serverpath', '', 'width=700,height=500,top=150,left=150,scrollbars=yes,location=no')">

enter image description here