Java 在Servlet中以字符串形式获取文件内容
我正在使用HTML表单将文件上载到Servlet。通常,我想上传XML文件,但验证是在服务器端完成的 如何在Servlet上以字符串形式获取文件内容 这是我的HTML表单:Java 在Servlet中以字符串形式获取文件内容,java,html,xml,servlets,Java,Html,Xml,Servlets,我正在使用HTML表单将文件上载到Servlet。通常,我想上传XML文件,但验证是在服务器端完成的 如何在Servlet上以字符串形式获取文件内容 这是我的HTML表单: <form action="xml" enctype="multipart/form-data"> Select XML file: <input data-theme="b" type="file" name="xmlFile" > <input data-theme="b" id="xml"
<form action="xml" enctype="multipart/form-data">
Select XML file: <input data-theme="b" type="file" name="xmlFile" >
<input data-theme="b" id="xml" type="submit" value="Load">
</form>
目前,我试图以“参数”的形式获取该文件-返回null
我的目标是上载文件,在servlet中以字符串形式获取其内容,并继续在servlet中处理字符串。文件上载遵循RFC并向服务器发送多部分(多部分/表单数据)
要处理多部分服务器端,请使用适当的库(如Apache)您可以使用commons file upload解析多部分请求。完成请求解析后,公共文件上载将为您提供一个FileItem实例。从FileItem实例获取输入流并使用servlet中的内容
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List<FileItem> items = upload.parseRequest(request);
for (FileItem item : items){
InputStream in = item.getInputStream();
//Use in here
}
}
protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
DiskFileItemFactory=新的DiskFileItemFactory();
ServletFileUpload upload=新的ServletFileUpload(工厂);
//解析请求
列表项=upload.parseRequest(请求);
用于(文件项:项){
InputStream in=item.getInputStream();
//在这里使用
}
}
此文件可能重复。我正在查找文件的字符串数据。我在HTMl表单中使用多部分/表单数据。是的,但您在服务器端没有正确处理它request.getParameter()
不是好办法。检查Commons文件上传docsOK。现在,我在serlvet-@multipartconfig中使用注释,我有这样一个:partfilepart=request.getPart(“xmlFile”);InputStream filecontent=filePart.getInputStream();字符串XMlFileContent=getStringFromInputStream(filecontent);我仍然得到500个内部服务器错误捕获异常服务器端并打印跟踪,以查看是什么触发了500items=upload.parseRequest(请求);这是非法的,请参阅
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List<FileItem> items = upload.parseRequest(request);
for (FileItem item : items){
InputStream in = item.getInputStream();
//Use in here
}
}