यदि इंटरफ़ेस MultipartFileका वर्ग है, तो आप कास्टिंग के द्वारा स्प्रिंग में टेंपफ़ाइल का उपयोग कर सकते हैं CommonsMultipartFile।
public File getTempFile(MultipartFile multipartFile)
{
CommonsMultipartFile commonsMultipartFile = (CommonsMultipartFile) multipartFile;
FileItem fileItem = commonsMultipartFile.getFileItem();
DiskFileItem diskFileItem = (DiskFileItem) fileItem;
String absPath = diskFileItem.getStoreLocation().getAbsolutePath();
File file = new File(absPath);
if (!file.exists()) {
file.createNewFile();
multipartFile.transferTo(file);
}
return file;
}
10240 बाइट से कम फ़ाइलों वाली ट्रिक से छुटकारा पाने के लिए क्लास maxInMemorySizeमें प्रॉपर्टी को 0 पर सेट किया जा सकता है @Configuration @EnableWebMvc। उसके बाद, सभी अपलोड की गई फ़ाइलों को डिस्क पर संग्रहीत किया जाएगा।
@Bean(name = "multipartResolver")
public CommonsMultipartResolver createMultipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setDefaultEncoding("utf-8");
resolver.setMaxInMemorySize(0);
return resolver;
}
MultipartFile.transferTo()?