То, когда файл говорит 100 МБ размером, загружается от браузера, будет Spring содержать целые данные в памяти или хранилища в диске временно. После прохождения через документа Spring я знаю, как установить временный dir, но я хочу знать то, что произойдет, если я не упомяну это.
Имею следующее объявление:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
Боб:
public class FileHolder {
private MultipartFile file;
public void setFile(MultipartFile file) {
this.file = file;
}
public MultipartFile getFile() {
return file;
}
}
"Файл" возразит в вышеупомянутом бобе, содержат те данные на 100 МБ?
Чуть больше копания в javadoc показывает, что максимальный размер памяти по умолчанию составляет 10240 байт. Исходя из этого, я бы предположил, что любая загрузка размером менее 10 кБ будет храниться в памяти, а все, что больше, будет храниться на диске. Если вы не укажете расположение диска, то, скорее всего, он будет использовать директорию tmp по умолчанию (я бы предположил, что он будет использовать директорию tmp по умолчанию).
.Да, но если она хранится в disk он будет удален после обработки запроса.
Если вы не установите временную директорию CommonsMultipartResolver сохранит временные файлы во временную директорию контейнера сервлета.
Объект "файл" в вашем примере не содержит данных, похожих на ссылку на java.io.File. Данные нужно получить с помощью file.getBytes()
.