0

我使用以下代码上传文件,目前它上传文件没有<..>但我希望上传 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>输出。

4

2 回答 2

1

我没有立即看到您的代码有问题,但由于

response.setContentType("text/html;charset=UTF-8");

您是在告诉接收端的浏览器它正在获取 html,因此它会尝试将接收到的数据解释为 HTML。尝试使用正确的内容类型发送数据:

response.setContentType("application/xml;charset=UTF-8");

令我困惑的是您的评论标签:Screens><Screen 那不是有效的xml。如果更正内容类型不起作用,您可以向您的问题添加一个真实的测试(类似于您的数据的最小样本)以及有效的输出。

于 2013-07-15T08:16:59.620 回答
0

如果您在浏览器上查看输出,请尝试查看源代码:

对于 IE - 右键单击​​页面并选择“查看源代码”

对于 FF 和 Chrome - 右键单击​​页面并选择“查看页面源代码”

于 2013-07-15T00:32:47.720 回答