Подтвердить что ты не робот

Как избавиться от WebKitFormBoundary в загруженном файле

Я внедряю загрузку файлов в веб-приложении.

Внешний интерфейс написан в angularJS и использует пакет angular -file-upload (тот, который можно найти по этой ссылке https://github.com/nervgh/angular-file-upload).

Контент Java/Джерси Веб-службы.

Мой вопрос:

Загруженный файл содержит заголовок и нижний колонтитул WebKitFormBoundary, например:

------WebKitFormBoundarylqskdjlqksdjl
Content-Disposition: form-data; name="upload"; filename="foo.bar"
Content-Type: multipart/form-data

Поэтому я не уверен, загружаю ли я файл или запрос. И, конечно, мое фоновое приложение считает, что загруженные файлы повреждены и не будут отображаться, если эти строки не будут удалены (теперь вручную).

Нижняя строка: как мне избавиться от этого верхнего и нижнего колонтитула в загруженном файле?

Вот несколько примеров кода.

Front-End

Еще раз: angularJS angular -file-upload

item.headers = {
    'Content-Disposition': 'attachment; filename="' + item.file.name + '"',
    'Content-Type': 'multipart/form-data'
};

Back-End

и Java/Jersey

@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("someurl/{fileName}")
public Artifact uploadArtifact(InputStream uploadedStream, @PathParam("fileName") String fileName) throws Exception;

Примечание

Мне интересно, может ли Content-Disposition: attachment в моей части angularJS что-то испортить?

И что это скорее должно быть Content-Disposition: form-data?

спасибо заранее!

4b9b3361

Ответ 1

Вам нужно разместить аннотацию @FormDataParam, чтобы правильно обрабатывать границу.

@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("someurl/{fileName}")
public Artifact uploadArtifact(
    @FormDataParam("file") InputStream uploadedStream,
    @FormDataParam("file") FormDataContentDisposition fileDetails,
    @PathParam("fileName") String fileName) throws Exception;