2010-11-11 6 views
14

में अपलोड की गई फ़ाइल का MIME प्रकार प्राप्त करने के लिए मैं जर्सी में एक मानक अपलोड endpoint है:कैसे जर्सी

@POST 
@Secure 
@Consumes("multipart/form-data") 
public Response upload(@Context final HttpHeaders hh, 
      @FormDataParam("fileaaa") final FormDataContentDisposition disposition, 
      @FormDataParam("fileaaa") final InputStream input, 

मैं अपलोड की गई फ़ाइल का MIME प्रकार कैसे मिल सकता है?

यदि मैं disposition.getType करता हूं तो यह मुझे फॉर्म का एमआईएम प्रकार प्राप्त करता है; इस मामले में form-data

मुझे पता है कि जानकारी कहीं कहीं है;

-----------------------------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-- 

उत्तर

28

मैं दे जर्सी मेरी विधि में एक BodyPart पैरामीटर इंजेक्षन द्वारा इस हल: HTTP संदेश कुछ की तरह होना चाहिए। शरीर के भाग पर getMediaType() मुझे जो चाहिए वह मुझे देता है:

@POST 
@Secure 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public Response upload(/*other parms */, @FormDataParam("fileaaa") final FormDataBodyPart body) { 
    String mimeType = body.getMediaType().toString(); 
    //handle upload 
} 
+1

यहां एक मृत प्रश्न का पुनरुत्थान, लेकिन आपने यह कैसे किया? मुझे एक ही समस्या का सामना करना पड़ रहा है (URLConnection.guessContentTypeFromStream का उपयोग करने की कोशिश कर रहा था लेकिन यह टेक्स्ट फ़ाइलों पर असफल रहा प्रतीत होता है), और जब मैं फॉर्म [इंफोर्मेटाम ("my_file") बॉडीपार्ट बॉडी के इंजेक्शन पैरामेट को जोड़ता हूं, तो यह अभी मिलता है शून्य करने के लिए सेट करें। – Arkaaito

+0

@Arkaaito मैंने थोड़ी देर में इसे छुआ नहीं है, लेकिन क्या आपने अपने एंडपॉइंट के लिए मल्टीपार्ट पैरामीटर देखे हैं? आपको फॉर्मडाटा पैराम के साथ इसे उपसर्ग करने की आवश्यकता नहीं है और आप उस से शरीर के अंग प्राप्त कर सकते हैं। –

+7

बिगरेडबेटाफ़िश की टिप्पणी: "बॉडीपार्ट प्राप्त करने के लिए स्वीकार्य उत्तर पर बस एक नोट, आप इसका उपयोग कर सकते हैं: ' @FormDataParam ("my_file") FormDataBodyPart body' फिर आप 'body.getMediaType()' –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^