【问题标题】:how to read a file on client machine using the folder location如何使用文件夹位置读取客户端计算机上的文件
【发布时间】:2014-12-18 05:50:20
【问题描述】:

这是jsp文件上传表单

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>File Uploading form</title>
</head>
<body>
    <form action="./read.do" method="post">
        Select the file to read: <input type="file" id="myFile" size="50">
        <br />
         path is: <input type="text" name="path" />

        <button type="button" onclick="myFunction()">Copy path</button>
        <input type="submit" value="Submit">
        <p id="demo"></p>

        <script>
function myFunction() {
    var x = document.getElementById("myFile").value;
     document.getElementsByTagName("INPUT")[3].setAttribute("value",x); 

}
</script>
    </form>
</body>
</html>

这里我没有将文件上传到我的服务器,我只是获取文件的路径并使用 servlet 中的以下代码读取文件

String path = req.getParameter("path");
            FileInputStream fis = null;
            File excel = new File(path);
            fis = new FileInputStream(excel);

当我在存在服务器的同一台机器上运行时,这工作正常。但是当我尝试从其他机器访问时,代码正在搜索我机器中的路径,而不是在客户端机器上如何解决这个问题。 我已经看到了其他一些方法,例如使用 multipart ,但是文件正在加载到服务器,但出于我的要求,我不应该将文件直接上传到我的服务器,我必须通过获取文件路径自行读取客户端计算机上的完整文件。请建议我一些想法来实现这一目标

【问题讨论】:

    标签: java jsp servlets multipart


    【解决方案1】:

    您可以尝试使用 JavaScript File Reader API 在客户端使用 JS 读取文件内容。 file API

    例如:

    var file = document.getElementById("fileForUpload").files[0];
    if (file) {
        var reader = new FileReader();
        reader.readAsText(file, "UTF-8");
        reader.onload = function (evt) {
            document.getElementById("fileContents").innerHTML = evt.target.result;
        }
        reader.onerror = function (evt) {
            document.getElementById("fileContents").innerHTML = "error reading file";
        }
    }

    或者你也可以去 HTML5 的文件阅读器HTML5 FileReader

    【讨论】:

      【解决方案2】:

      文件上传是multi-part request。 request.getParameter() 返回客户端机器上的文件路径。取而代之的是,您需要使用request.getPart() 方法或apache-fileupload 之类的库来检索远程文件的输入流。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-17
        • 1970-01-01
        相关资源
        最近更新 更多