Отправка файла и json Spring boot и angular

avatar
markoye
8 августа 2021 в 15:54
313
0
0

Я хочу отправить объект данных формы из angular "спереди" в spring boot "назад" и у меня была следующая ошибка

Неверный запрос: не удалось преобразовать значение типа 'java.lang.String' в требуемый тип 'java.lang.Long'; вложенным исключением является java.lang.NumberFormatException: для входной строки: "null"

create(document: IDocument, fichier: File | undefined): Observable<EntityResponseType> {
    const formData: FormData = new FormData();

    const documentDTO = new Blob([JSON.stringify({document})], {type: 
    formData.append('documentDTO', documentDTO);
    if (fichier !== undefined) {
      formData.append('fichier', fichier);
    }
    return this.http.post(this.resourceUrl, formData, { observe: 'response' });
  }
  
  
  
  
   @PostMapping(value = "/documents",
        produces = MediaType.APPLICATION_JSON_VALUE,
        consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE})
    public ResponseEntity<DocumentDTO> createDocument(@RequestPart("documentDTO") DocumentDTO documentDTO,
                                                      @RequestPart("fichier") MultipartFile fichier) throws URISyntaxException, SQLException {
        log.debug("=========================", documentDTO.toString());
        log.debug("+++++++++++++++++++++++++++++++++", fichier.getName());
        this.documentService.init();
        try {
            Files.copy(fichier.getInputStream(), this.root.resolve(fichier.getOriginalFilename()));
        } catch (Exception e) {
            throw new RuntimeException("Could not store the file. Error: " + e.getMessage());
        }
        if (documentDTO.getId() != null) {
            throw new BadRequestAlertException("A new document cannot already have an ID", ENTITY_NAME, "idexists");
        }
        DocumentDTO result = documentService.save(documentDTO);
        return ResponseEntity
            .created(new URI("/api/documents/" + result.getId()))
            .headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString()))
            .body(result);
    }
Источник
mep
8 августа 2021 в 16:01
1

У вас есть Long в DocumentDTO? Можете ли вы опубликовать структуру DocumentDTO и IDocument?

eol
8 августа 2021 в 16:07
0

Отвечает ли это на ваш вопрос? Контроллер Spring Boot — загрузка Multipart и JSON в DTO

markoye
8 августа 2021 в 16:14
0

` открытый класс DocumentDTO реализует Serializable { частный длинный идентификатор; @NotNull private String титр; Автор @NotNull private String; приватное строковое описание; URL-адрес частной строки; закрытый TypeDocumentDTO typeDocument; частный AnneeRedactionDocumentDTO anneeRedactionDocument; `

markoye
8 августа 2021 в 16:16
0

`импорт { ITypeDocument } из 'app/entities/type-document/type-document.model'; импортировать { IAnneeRedactionDocument } из 'app/entities/annee-redaction-document/annee-redaction-document.model'; интерфейс экспорта IDocument { id?: число; титр?: строка; автор?: строка; описание?: строка | нулевой; URL-адрес?: строка | нулевой; типДокумент?: ITypeDocument | нулевой; anneeRedactionDocument?: IAnneeRedactionDocument | нулевой; // найти?: Файл | нулевой; } `

Ответы (0)