我需要一个带有文件上传的页面和一个文本区域,在该页面中打印文件的内容。
目前我有一个jsp文件和一个servlet:
index.jsp的一部分:
<form action="FileReader" ENCTYPE="multipart/form-data" method="POST">
<textarea name="textinputarea" rows="14" cols="130" readonly>
Some text
</textarea>
<br> <br><tr>
<td valign="top" align="left" height="200" width="33%">
<img class="start_img" src="file_Selections.jpg"> <br>
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<input type="file" name="user_file" accept="text/xml">
<input type="submit" value="Validate" /> <br>
</form>
servlet的一部分:
public void doPost(HttpServletRequest request, HttpServletResponse response)
String name = request.getParameter("textinputarea");
(...)
}else {
String otherFieldName = item.getFieldName();
String otherFieldValue = item.getString();}}
(...)
out.println("<html>");
out.println("<head>");
out.println("<title>Processing get requests with data</title>");
out.println("</head>");
// body section of document
out.println("<body>");
while ((strLine = br.readLine()) != null) {
// Print the content on the console
out.println(strLine + "</br>");
}
out.println("</body>");
// end of html document
out.println("</html>");
out.close();
} catch (Exception e) {
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
};
}
这实际上是在新页面中打印文件的内容。我试图给出相同的文本区域名称和“String name = request.getParameter(”textinputarea“);”..
谢谢你的时间!
答案 0 :(得分:1)
此else
块中提供了所有表单字段,您在后处理中完全忽略了这些字段。
} else {
String otherFieldName = item.getFieldName();
String otherFieldValue = item.getString();
}
不要忽视它。这些值表示常规表单字段的名称=值对。
请注意,您无法在getParameter()
编码请求中使用multipart/form-data
。这正是您使用Apache Commons FileUpload来提取文件的原因。您应该使用相同的API来提取multipart/form-data
请求的其他部分。