Skip to content

CommonsMultipartResolver.setMaxUploadSizePerFile() does not work if encoding does not match the default encoding [SPR-13653] #18229

@spring-projects-issues

Description

@spring-projects-issues

Alex Shesterov opened SPR-13653 and commented

Release 4.2 added support for per-file size limits — task #17792.
The new method is CommonsFileUploadSupport.setMaxUploadSizePerFile(long).

But this setting has no effect if file encoding does not match default encoding.

The reason is the following code in CommonsFileUploadSupport:

	protected FileUpload prepareFileUpload(String encoding) {
		FileUpload fileUpload = getFileUpload();
		FileUpload actualFileUpload = fileUpload;

		// Use new temporary FileUpload instance if the request specifies
		// its own encoding that does not match the default encoding.
		if (encoding != null && !encoding.equals(fileUpload.getHeaderEncoding())) {
			actualFileUpload = newFileUpload(getFileItemFactory());
			actualFileUpload.setSizeMax(fileUpload.getSizeMax());

			// !!missing:  actualFileUpload.setFileSizeMax(fileUpload.getFileSizeMax());

			actualFileUpload.setHeaderEncoding(encoding);
		}

		return actualFileUpload;
	}

Affects: 4.2.2

Issue Links:

Referenced from: commits a1bf941

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions