in src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java [396:430]
private void parseMultiPartPost(ParameterMap parameters) {
// Create a new file upload handler
JakartaServletDiskFileUpload upload = new JakartaServletDiskFileUpload();
upload.setSizeMax(ParameterSupport.maxRequestSize);
upload.setFileSizeMax(ParameterSupport.maxFileSize);
upload.setFileItemFactory(DiskFileItemFactory.builder()
.setBufferSize(ParameterSupport.fileSizeThreshold)
.setPath(ParameterSupport.location.toPath())
.get());
upload.setFileCountMax(ParameterSupport.maxFileCount);
RequestContext rc = new JakartaServletRequestContext(this.getServletRequest()) {
@Override
public String getCharacterEncoding() {
String enc = super.getCharacterEncoding();
return (enc != null) ? enc : Util.ENCODING_DIRECT;
}
};
// Parse the request
List<?> /* FileItem */ items = null;
try {
items = upload.parseRequest(rc);
} catch (FileUploadException fue) {
this.log.error("parseMultiPartPost: Error parsing request", fue);
}
if (items != null && items.size() > 0) {
for (Iterator<?> ii = items.iterator(); ii.hasNext(); ) {
DiskFileItem fileItem = (DiskFileItem) ii.next();
RequestParameter pp = new MultipartRequestParameter(fileItem);
parameters.addParameter(pp, false);
}
}
}