我使用以下代码上传文件,目前它上传的文件没有 <..>
但是我想上传一个 XML 文件。如何上传文件?
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart){
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try{
List<FileItem> fields = upload.parseRequest(request);
Iterator<FileItem> it = fields.iterator();
while (it.hasNext()) {
FileItem fileItem = it.next();
out.println(fileItem.getString());
}
}catch (FileUploadException e) {
e.printStackTrace();
}
}
}
编辑:
例如,如果我上传包含 Screens><Screen
的文件仅Screens>
输出。
最佳答案
我没有立即发现您的代码有问题,但因为
response.setContentType("text/html;charset=UTF-8");
您告诉接收端的浏览器它正在获取 html,因此它将尝试将接收到的数据解释为 HTML。尝试使用正确的内容类型发送数据:
response.setContentType("application/xml;charset=UTF-8");
令我困惑的是你的评论标签:Screens><Screen
这不是有效的 xml。如果更正内容类型不起作用,您可以向您的问题添加真实测试(类似于最小数据样本的测试)以及有效输出。
关于java - 使用 Java Servlet 上传 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17645062/