Tôi có một endpoint tải lên chuẩn ở Jersey:Làm thế nào để có được MIME loại tập tin tải lên trong Jersey
@POST
@Secure
@Consumes("multipart/form-data")
public Response upload(@Context final HttpHeaders hh,
@FormDataParam("fileaaa") final FormDataContentDisposition disposition,
@FormDataParam("fileaaa") final InputStream input,
Làm thế nào tôi có thể nhận được các kiểu MIME của tập tin tải lên?
Nếu tôi làm disposition.getType
điều này sẽ cho tôi loại MIME của biểu mẫu; trong trường hợp này là form-data
.
Tôi biết thông tin có ở đâu đó; thông báo HTTP phải giống như sau:
-----------------------------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--
Phục hồi câu hỏi đã chết tại đây, nhưng bạn đã làm như thế nào? Tôi đang gặp phải vấn đề tương tự (đã cố gắng sử dụng URLConnection.guessContentTypeFromStream nhưng có vẻ như không thành công trên các tệp văn bản) và khi tôi thêm một tham số được tiêm của biểu mẫu [@FormDataParam ("my_file") BodyPart body], nó chỉ được đặt thành null. – Arkaaito
@Arkaaito Tôi đã không chạm vào điều này trong một thời gian, nhưng bạn đã xem xét các thông số MultiPart cho điểm cuối của mình chưa? Bạn không cần tiền tố nó với FormDataParam và bạn có thể lấy các phần thân từ đó. –
Nhận xét của BigRedBettaFish: "Chỉ cần ghi chú cho câu trả lời được chấp nhận, để lấy BodyPart, bạn có thể sử dụng: ' @FormDataParam ("my_file") FormDataBodyPart body' Sau đó, bạn có thể sử dụng 'body.getMediaType()' " –