0

我正在尝试使用 HTML5 File API 分段上传文件(在发现来自 RichFaces 和 PrimeFaces 的文件上传组件不是最适合我的需要之后)。我已按照此问题中提示的步骤进行操作:

使用 html5 分块上传文件

但是我需要使用 JSF 1.2 而不是 PHP,这意味着(我认为):

xhr.open("POST", "upload.xhtml");

代替

xhr.open("POST", "upload.php");

有没有办法做到这一点?我如何告诉 JSF 让文件段来处理它们?

4

2 回答 2

0

您不能向 JSF 页面提交非 JSF POST 请求。您需要为非 JSF POST 请求自制一个自定义 servlet。您可以在这个与密切相关的问题的答案中找到此类 servlet 的具体示例:HTML5 File Upload to Java Servlet

于 2013-11-07T09:37:25.997 回答
0

要从 primfaces 中的 servlet 恢复上传的文件(primfaces 5 是我的版本),请使用此代码

   @Override
    public void doPost(HttpServletRequest request, 
    HttpServletResponse response) 
    throws ServletException, IOException 
    {
        FileItem fi;
        try {
             MultipartRequest sReq = (MultipartRequest)request;
             fi = sReq.getFileItem("file");

         } catch (Exception e) {
             throw new ServletException("ERROR: ", e);
         }

        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");
        if(fi != null)
        {
            response.getWriter().write(" Fichero capturado correctamente "); 
        }
        else
        {
            response.getWriter().write(" Se ha producido algún fallor ");       
        }
    }

问题的关键是:

     MultipartRequest sReq = (MultipartRequest)request;
     fi = sReq.getFileItem("file");

我希望您可以使用我的解决方案。

于 2014-11-15T10:32:07.203 回答