2017-02-04 2 views
0

Я смотрел this, но, похоже, моя проблема в другом месте. Я пытаюсь загрузить файл. input в настоящее время определяется как:MissingServletRequestPartException: Требуемый номер части запроса «файл» нет

<input 
    type="file" 
    style="display: none;" 
    name="file"  
    multiple  
    nv-file-select     
    uploader="uploader"> 

Это, как выполняется загрузка:

var uploader = $scope.uploader = new FileUploader({ 
    url: 'http://localhost:8080/rest-api/dl4j/we/uploadModel' 
}); 

uploader.onAfterAddingFile = function($modelFile) { 

    var fd = new FormData();   
    fd.append('file', $modelFile.file); 

    $http.post($modelFile.url, fd, { 
     headers: { 
      'Content-Type': undefined 
     }, 
     transformRequest: angular.identity   
    }) 
    .then(
     function (data) { 
      alert("upload success"); 
     }, 
     function (data, status) { 
      alert("upload error"); 
     } 
    ); 
}; 

Принимая во внимание, что это весна REST конечной точки:

@PostMapping(WordEmbeddingApiPaths.UPLOAD_MODEL) 
@RequestMapping(method=RequestMethod.POST, headers={"Content-Type=multipart/form-data"}) 
public ResponseEntity<WordVectorListDto> uploadModel( 
     @RequestParam("file") MultipartFile file, 
     RedirectAttributes redirectAttributes) { 

    LOGGER.debug("POST uploadModel"); 

    return new ResponseEntity<WordVectorListDto>((WordVectorListDto)null, HttpStatus.OK); 
} 

Проблема заключается в том, однако, что исключение вызывается весной, сообщая мне, что параметр file нет:

org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present 

Это информация запрос:

enter image description here

Как я могу сделать эту работу загрузки файла?

+1

Получили ли вы это сделать? Я получаю ту же проблему с моим приложением Angular2 – vigamage

ответ

0

Я предполагаю, что это может быть связано с типом контента В своем коде я вижу это:

$http.post($modelFile.url, fd, { 
     headers: { 
      'Content-Type': undefined 
     }, 
     transformRequest: angular.identity   
    }) 

Таким образом, вы определяете неопределенный тип содержимого; Вы должны установить multipart/form-data попытайтесь поместить этот Content-Type

Я надеюсь, что это полезно

Angelo

+0

Нет, в этом случае тип контента устанавливается правильно - не уверен, но я думаю, что это делается как-то угловатым. Как видно из запроса, заголовок Content-Type установлен правильно. – displayname

Смежные вопросы