Will Spring hold contents in memory or stores in the disk?

Maniganda Prakash picture Maniganda Prakash · Dec 23, 2009 · Viewed 8.1k times · Source

When a file say 100 MB size is uploaded from browser will Spring hold whole data in memory or stores in the disk temporarily. After going through Spring doc I know how to set a temp dir but I want to know what will happen if I don't mention that.

Am having following declaration :

<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

Bean :

public class FileHolder {

    private MultipartFile file;

    public void setFile(MultipartFile file) {
        this.file = file;
    }

    public MultipartFile getFile() {
        return file;
    }
}

Will the "file" object in the above bean hold that 100 MB data ?

Answer

skaffman picture skaffman · Dec 23, 2009

A bit more digging in the javadoc shows that the default maximum in-memory size is 10240 bytes. From that I'd assume that any upload less than 10kB is held in memory, anything larger will be stored on disk. If you don't specify the disk location, it'll likely use a default (I'd guess it'll use the system default tmp directory).