Can a servlet determine if the posted data is multipart/form-data?我有一个Servlet,用于Front Controller模式中的许多不同操作。 有谁知道是否有可能判断回传给它的数据是否为enctype =" multipart / form-data"? 在做出决定之前,我无法读取请求参数,因此无法将请求分派给适当的控制器。 有任何想法吗? 如果要尝试使用上面介绍的request.getContentType()方法,请注意: 考虑到这一点,您应该运行的检查是:
是的,用户代理请求中的 http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2 您可以调用一个方法来获取内容类型。 http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html#getContentType() 根据http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2,内容类型将为" multipart / form-data"。 不要忘记: request.getContentType()可能返回null。 request.getContentType()可能不等于" multipart / form-data",而只能以它开头。 因此,请牢记所有这些:
ServletFileUpload实现isMultipartContent()。也许您可以根据需要提高此实现(相对于创建ServletFileUpload的开销)。 http://www.docjar.com/html/api/org/apache/commons/fileupload/servlet/ServletFileUpload.java.html 为了扩展awm129的答案-Apache commons的实现与此对应:
您可以使用Apache Commons的
您必须至少在某种程度上读取请求参数才能确定该参数。 ServletRequest类具有您要查看的getContentType方法。 https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getParts() java.util.Collection getParts()
抛出: |