我想将一个excel文件上传到html / jsp页面并将文件路径发送到我的Java控制器。这是我的代码片段: -
jsp:
<script>
function getPath()
{
document.getElementById("actualPath").value=document.getElementById("excelFile").value;
console.log(document.getElementById("actualPath").value);
return false;
}
</script>
</head>
<body>
<form action="<%=request.getContextPath()%>/Controller?action=uploadExcel" onsubmit="return getPath()" method="POST">
<input type="file" name="excelFile" id="excelFile">
<input type="hidden" name="actualPath" id="actualPath" value="">
<input type="submit">
</form>
Java代码: -
private void getExcel(HttpServletRequest request,
HttpServletResponse response) throws BiffException, IOException, JSONException, ServletException {
System.out.println(request.getParameter("excelFile"));
String FilePath = request.getParameter("actualPath");
Workbook workbook = Workbook.getWorkbook(new File(FilePath));
Sheet sh = workbook.getSheet("Sheet1");
int totalNoOfRows = sh.getRows();
Map<String,String> map=new LinkedHashMap<String, String>();
int totalNoOfCols = sh.getColumns();
我将actualPath值变为C:\ fakepath \ Book1.xls,这是显而易见的,因为它不允许获取文件路径。我有什么方法可以解决这个问题。或者直接将文件发送到Java?提前致谢
答案 0 :(得分:1)
由于我没有足够的声誉发表评论,我将其作为答案发布。以下链接将为您提供有关将文件上载到JSP / Servlet的详细信息。
答案 1 :(得分:0)
它显示了你的假冒路径&#39;仅仅是因为浏览器&#39;安全规则。我试图找到一条完整路径的方法,但我没有幸运。我在JSP中使用Ajax(仅限onClick - 不输入提交)&amp;今天我在link找到了我需要的东西。希望它有所帮助;)