我创建了两个 JSP 程序如下。
第一个:Addmulti.jsp
<html>
<head><title>Upload Excel File</title></head></p> <p><body>
<form action="Test2.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1">
<br><br>
Upload File:
<input name="file" type="file" id="file"><br><br>
<input type="submit" name="Submit" value="Submit"/><br><br>
<input type="reset" name="Reset" value="Reset"/>
</form>
</body>
</html>
第二个:Test2.jsp
<%@ page import="myfirst.*" %>
<%
String filevar=request.getParameter("file");
String result="";
myfirst.SearchLink z=new myfirst.SearchLink();
result=z.addmultiple(filevar);
System.out.println(result);
out.println(result);
%>
SearchLink 是一个 java 程序,包含如下方法,
public String addmultiple(String file)throws SQLException{
return file;
}
我想将上面提到的第一个jsp程序中选择的文件的完整路径传递给名为addmultiple(String)的java方法。相反,一旦调用 Test2.jsp 程序,null 就会作为输出打印在浏览器中。
在上述代码中,实际上将什么传递给带有参数 String 的方法?
如何将第一个jsp代码中选择的文件的完整路径发送给java程序?请指教。
最佳答案
你不能。
首先,request.getParameter()
将始终在 multipart/form-data
请求中返回 null
。您需要解析请求正文。如何做到这一点在您的 previous question 中得到了回答和评论。 .
其次,网络浏览器应该只发送文件 name 和文件内容。 MSIE 是唯一(错误地)发送名称中的完整路径的网络浏览器。你不应该依赖那个。您也不应该对文件路径感兴趣。你能用它做什么?使用 java.io.File
打开文件?当网络浏览器和网络服务器在物理上不同的机器上运行时,您如何让它工作?
另见:
关于java - 将上传文件的路径传递给Java程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3653704/