यदि इंटरफ़ेस 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()
?