मुझे ब्राउज़र से सर्वर पर फ़ाइल अपलोड करने की आवश्यकता है। मैं वसंत 3.2 का उपयोग अपने वेब ढांचे के रूप में करता हूं।वसंत अपलोड फ़ाइल की समस्याएं
इसलिए मैंने इस तरह अपना ऐप कॉन्फ़िगर किया।
1 - मैं web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>racoonsoft.chaos.settings</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>admin/library</welcome-file>
</welcome-file-list>
</web-app>
2 मिला - MainConfig वर्ग
@Configuration
@Import({WebConfig.class })
public class MainConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Bean
public static ScheduledAnnotationBeanPostProcessor scheduledAnnotationBeanPostProcessor() {
return new ScheduledAnnotationBeanPostProcessor();
}
@Bean
public static StandardServletMultipartResolver multipartResolver() {
StandardServletMultipartResolver resolver = new StandardServletMultipartResolver();
return resolver;
}
}
3 - नियंत्रक बहुखण्डीय अपलोड
@Controller
@MultipartConfig(fileSizeThreshold=1024*1024*2, // 2MB
maxFileSize=1024*1024*10, // 10MB
maxRequestSize=1024*1024*50)
public class FileUpload
{
public static final int UPLOAD_RESULT_OK = 100000;
@Autowired
BookDao book_dao;
@RequestMapping(value = "/admin/library/upload_file", method = RequestMethod.POST)
public String saveFiles(@RequestParam("file-file") MultipartFile file) throws IOException
{
if (!file.isEmpty())
{
byte[] bytes = file.getBytes();
return "redirect:caps/total_fail";
}
else
{
return "redirect:caps/total_fail";
}
}
}
4 को संभालने के लिए - jsp मैं कहाँ रखा मेरी फाइल सबमिट करने के लिए फॉर्म
...<form method="post" action="/admin/library/upload_file" enctype="multipart/form-data">
<input type="text" name="name"/>
<input type="file" name="file-file"/>
<input type="submit"/>
</form>...
जब मैं अपने प्रपत्र सबमिट मैं एक अपवाद
org.springframework.web.bind.MissingServletRequestParameterException: Required MultipartFile parameter 'file-file' is not present
org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:202)
मैं पता नहीं क्यों मिले मिला है। जब मैं @RequestParam annotaion को हटा देता हूं तो मुझे अपनी विधि को बुलाया जाता है लेकिन फ़ाइल पैरामीटर = शून्य। मेरी समस्या क्या है?
मुझे यकीन नहीं है कि मैं इसे कैसे कॉन्फ़िगर कर सकता हूं। क्या मुझे अपने web.xml में परिवर्तन करने की ज़रूरत है? या मुझे अपना खुद का फ़िल्टर मल्टीपार्टफ़िल्टर विस्तारित करना होगा और इसे /व्यवस्थापक/लाइब्रेरी/upload_file पर मानचित्रित करना होगा ?? – user2160696
कॉन्फ़िगरेशन विवरण के लिए अद्यतन उत्तर देखें। – mthmulders
अफसोस की बात है कि यह मदद नहीं की थी। मैंने उन दो भागों को जोड़ा, लेकिन अभी भी पैरामीटर के रूप में शून्य हो गया। – user2160696