0

请看他下面的代码

JSP

<%-- 
    Document   : index
    Created on : Nov 27, 2012, 1:11:48 PM
    Author     : Yohan
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <div>
  <div>Content for New Div Tag Goes Here</div>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
<p>&nbsp;</p>
  <div>
      <form method="post" action="FileSelector" enctype="multipart/form-data">
      Select File: <input type="file" name="location"/></div>
        <br>
        <input type="submit" value="Submit"/>
</form>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>


</div>
    </body>
</html>

小服务程序

package importWizard;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;

public class FileSelector extends HttpServlet
{
    public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
    {
        doPost(request,response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
    {
        PrintWriter pw = response.getWriter();

        File location = (File)request.getParameter("location");


        pw.write(location);
    }
}

如您所见,我无法将文件从 JSP 发送到 Servlet。我不需要发送文件,但至少需要文件的完整位置(它只是发送文件名)。如何将文件或文件的完整位置从 JSP 发送到 servlet?

4

1 回答 1

2

我不需要发送文件,但至少需要文件的完整位置(它只是发送文件名)。如何将文件或文件的完整位置从 JSP 发送到 servlet?

<input type="file">使用标准 HTML元素是不可能的。它仅发送整个文件内容以及文件名,因为这基本上是服务器获取文件内容的唯一方式。服务器即无法直接访问客户端的本地磁盘文件系统,因此客户端的绝对磁盘文件系统路径作为唯一信息将毫无用处。请注意,由于安全漏洞,MSIE 浏览器将发送完整的绝对客户端磁盘文件系统路径,而不仅仅是文件名,但这不是应该的工作方式。

如果你真的只需要客户端的绝对磁盘文件系统路径,那么最好的办法是创建一个(签名的)applet 或 webstart 应用程序,通过它获取它JFileChooser并最终将它嵌入到网页中。

也可以看看:

于 2012-11-28T17:29:42.667 回答