14
Mam standardowy punkt końcowy przesyłania w Jersey:Jak uzyskać typ MIME pliku przekazany w Jersey
@POST
@Secure
@Consumes("multipart/form-data")
public Response upload(@Context final HttpHeaders hh,
@FormDataParam("fileaaa") final FormDataContentDisposition disposition,
@FormDataParam("fileaaa") final InputStream input,
Jak mogę uzyskać typ MIME przesyłanego pliku?
Jeśli wykonam disposition.getType
, otrzymam informację o typie MIME formularza; w tym przypadku form-data
.
Wiem, że informacje są gdzieś; komunikat HTTP powinno być coś takiego:
-----------------------------7d01ecf406a6
Content-Disposition: form-data; name="input_text"
mytext
-----------------------------7d01ecf406a6
Content-Disposition: form-data; name="fileaaa";
filename="C:\Inetpub\wwwroot\Upload\pic.gif"
Content-Type: image/gif
(binary content)
-----------------------------7d01ecf406a6--
Wskrzeszanie martwego pytania tutaj, ale jak to zrobiłeś? Zdaję sobie sprawę z tego samego problemu (próbowałem użyć adresu URLConnection.guessContentTypeFromStream, ale wydaje się, że nie działa on w plikach tekstowych), a po dodaniu wstrzykniętego parametru formularza [@FormDataParam ("mój_plik") bodyPart body], po prostu dostaje ustawiona na null. – Arkaaito
@Arkaaito Nie dotykałem tego od jakiegoś czasu, ale czy spojrzałeś na parametry MultiPart dla swojego punktu końcowego? Nie trzeba go poprzedzać FormDataParam i można uzyskać części ciała z tego. –
Uwaga BigRedBettaFish: "Wystarczy notatkę do zaakceptowanej odpowiedzi, aby uzyskać BodyPart, możesz użyć: ' @FormDataParam ("my_file") FormDataBodyPart body' Następnie możesz użyć 'body.getMediaType()' " –