не может получить параметр типа @ModelAttribute VO всякий раз, когда он должен иметь составной файл - PullRequest
0 голосов
/ 13 июля 2020

привет, у меня проблемы с моим проектом Spring 4, который, когда я пытаюсь прикрепить файл к моему серверу, не проходит через go. Я имею в виду, что VO не содержит / не получает ничего в 6-й строке в моем первом поле кода

вот некоторые из моего кода в контроллере / браузере внизу

на моей консоли браузера, каждый элемент, такой как текст и файл то, что я пытаюсь отправить, показаны и отмечены. но каждый раз, когда я прикрепляю файл к своему контроллеру, VO имеет значение null, но если я не прикреплял какой-либо файл, просто какой-то текст, он отлично работает, вставлять и обновлять, даже удалять, просто он не работает, когда у него есть файл изображения, и я не знаю почему. Я попытался изменить тайм-аут, заголовок контента, потребление, но это не сработало ... возможно, это из-за моих настроек на стороне сервера или что? может быть длина содержимого? или вариант asyn c в ajax? idk .. спасибо, что уделили время, прочитав это

@RequestMapping(value="test/sending",method = RequestMethod.POST, produces = "application/json; charset=utf8")
    public @ResponseBody Object photoUpload(NoticeVO noticeVO, HttpServletRequest request) throws Exception {
        Map<String,String> rMap = new HashMap<>();
        rMap.put("result", "processing");
        String filePath = request.getSession().getServletContext().getRealPath("/")+"WEB-INF\\views\\assets\\img";
        System.out.println("===================================>"+noticeVO);

Я использую ajax в моем HTML

function updatePhoto(param){
        let data = $('#setForm').serializeArray();
        for (let i=0;i<data.length;i++){
            let mapData = data[i];
            if(mapData.name=='title' && (mapData.value==null || mapData.value=='')){
                bootbox.alert('title should not be empty');
                return;
            }
            formData.append(mapData.name,mapData.value);
        }
        if(param!=null){
            formData.append('idx',param.idx);
            formData.append('fileName',param.fileName);
        }
        for (let value of formData.values()) {
              console.log(value);
        }
        $.ajax({
            url:'/test/sending',
            method:'POST',
            enctype : 'multipart/form-data',
            contentType : false,
            processData : false,
            timeout: 600000,
            data : formData,
            cache : false,
            success : function(res){
                let msg = (res.result !=null && res.result=='done')? 'succeed' : 'try again';
                alertView(msg,'setting');
            },
            error : function(res){
                console.log(res);
            }
        })  
    }
``
...