diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/Form.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/Form.java index b4321cf3337c0213b584db95e3fae50268a544d3..77aa3c97ced2aeb724f05c85419bf827494bb188 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/Form.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/Form.java @@ -59,6 +59,7 @@ import org.olat.core.logging.OLog; import org.olat.core.logging.Tracing; import org.olat.core.util.ArrayHelper; import org.olat.core.util.CodeHelper; +import org.olat.core.util.StringHelper; import org.olat.core.util.ValidationStatus; import org.olat.core.util.WebappHelper; import org.olat.core.util.component.FormComponentTraverser; @@ -322,18 +323,13 @@ public class Form extends LogDelegator { HttpServletRequest req = ureq.getHttpReq(); try { for(Part part:req.getParts()) { - String contentType = part.getContentType(); String name = part.getName(); - - if(contentType == null) { - String value = IOUtils.toString(part.getInputStream()); - addRequestParameter(name, value); - } else { + String contentType = part.getContentType(); + String fileName = part.getSubmittedFileName(); + if(StringHelper.containsNonWhitespace(fileName)) { File tmpFile = new File(WebappHelper.getTmpDir(), "upload-" + CodeHelper.getGlobalForeverUniqueID()); part.write(tmpFile.getAbsolutePath()); - String fileName = part.getSubmittedFileName(); - // Cleanup IE filenames that are absolute int slashpos = fileName.lastIndexOf("/"); if (slashpos != -1) fileName = name.substring(slashpos + 1); @@ -343,6 +339,9 @@ public class Form extends LogDelegator { requestMultipartFiles.put(name, tmpFile); requestMultipartFileNames.put(name, fileName); requestMultipartFileMimeTypes.put(name, contentType); + } else { + String value = IOUtils.toString(part.getInputStream()); + addRequestParameter(name, value); } part.delete(); }