java - अनुरोध अस्वीकार कर दिया गया क्योंकि स्प्रिंगबूट में कोई मल्टीपार्ट सीमा नहीं मिली थी




web-services file-upload (4)

जैसा कि मैं स्प्रिंग बूट और webservices के साथ पोस्टमेन क्रोम ऐड-ऑन के साथ कोशिश कर रहा हूं

पोस्टमैन content-type="multipart/form-data" और मुझे नीचे अपवाद मिल रहा है

HTTP Status 500 - Request processing failed; 
nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; 
nested exception is java.io.IOException: 
org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found

नियंत्रक में मैंने नीचे कोड निर्दिष्ट किया

@ResponseBody
@RequestMapping(value = "/file", headers = "Content-Type= multipart/form-data", method = RequestMethod.POST)

public String upload(@RequestParam("name") String name,
        @RequestParam(value = "file", required = true) MultipartFile file)
//@RequestParam ()CommonsMultipartFile[] fileUpload
{
    // @RequestMapping(value="/newDocument", , method = RequestMethod.POST)
    if (!file.isEmpty()) {
        try {
            byte[] fileContent = file.getBytes();
            fileSystemHandler.create(123, fileContent, name);
            return "You successfully uploaded " + name + "!";
        } catch (Exception e) {
            return "You failed to upload " + name + " => " + e.getMessage();
        }
    } else {
        return "You failed to upload " + name + " because the file was empty.";
    }
}

यहां मैं फ़ाइल हैंडलर कोड निर्दिष्ट करता हूं

public String create(int jonId, byte[] fileContent, String name) {
    String status = "Created file...";
    try {
        String path = env.getProperty("file.uploadPath") + name;
        File newFile = new File(path);
        newFile.createNewFile();
        BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(newFile));
        stream.write(fileContent);
        stream.close();
    } catch (IOException ex) {
        status = "Failed to create file...";
        Logger.getLogger(FileSystemHandler.class.getName()).log(Level.SEVERE, null, ex);
    }
    return status;
}

समस्या आपके कोड में नहीं है। आपके अनुरोध में समस्याएं। आप बहु-भाग अनुरोध में किसी प्रकार की सीमा नहीं मिल रहे हैं


"पोस्टमैन-रेस्ट क्लाइंट" सामग्री-प्रकार की सेटिंग के साथ पोस्ट की गई कार्रवाई के लिए उपयुक्त नहीं है। आप "उन्नत रेस्ट क्लाइंट" या अन्य का उपयोग करने का प्रयास कर सकते हैं।

साथ ही, स्प्रिंग 3.1 एम 2 के बाद से हेडर की जगह खपत की गई और उत्पादन किया गया, https://spring.io/blog/2011/06/13/spring-3-1-m2-spring-mvc-enhancements देखें । और आप सीधे produces = MediaType.MULTIPART_FORM_DATA_VALUE उपयोग कर सकते हैं।


मुझे पोस्टमैन से एक पोस्ट अनुरोध करते समय एक ही समस्या हो रही थी और बाद में मैं इस तरह के साथ एक सीमा मान सेट के साथ एक कस्टम सामग्री-प्रकार सेट करके समस्या को हल कर सकता था

मैंने सोचा था कि लोग समान समस्या में भाग ले सकते हैं और इसलिए, मैं अपना समाधान साझा कर रहा हूं


पोस्टमैन और पोस्टमैन में सामग्री प्रकार को अनचेक करें स्वचालित रूप से चलाने के समय आपके इनपुट के आधार पर सामग्री प्रकार का पता लगाता है।

नमूना





multifile-uploader