2013-06-10 9 views
5

मैं play.mvc.Results.ok (फ़ाइल) के माध्यम से नियंत्रक से एक फ़ाइल लौटा रहा हूं। हालांकि, फाइल को "डाउनलोड" के रूप में डाउनलोड किया जाता है, बिना किसी विशिष्ट फ़ाइल नाम के। क्या कोई तरीका है कि मैं डाउनलोड के लिए नाम सेट कर सकता हूं (यानी image.png)?प्ले फ्रेमवर्क डाउनलोड फ़ाइल नाम

धन्यवाद

उत्तर

11

आदेश में एक विशिष्ट फ़ाइल नाम को परिभाषित करने के लिए, आपको ok(file) परिणाम लौटने से पहले जवाब में एक Content-Disposition हेडर सेट करना होगा।

यहां एक नमूना कोड है:

public static Result myAction() { 
    ... 
    response().setHeader("Content-Disposition", "attachment; filename=image.png"); 
    return ok(file); 
} 
5

स्काला (प्ले 2.4.x) में इस बात के लिए जादू

def myAction() { 
    ... 
    ok(file).withHeaders("Content-Disposition" -> "attachment; filename=image.png") 
} 

सूचना है कि यह बहुवचन है, इसकी एक नक्शा और आप एक से अधिक हो सकता है यदि आवश्यक हो तो मूल्य। सबसे नियंत्रक में https://www.playframework.com/documentation/2.4.0/api/scala/index.html#play.api.mvc.Controller

परिभाषित हेडर के लिए

def myAction() { 
    ... 
    ok(file).withHeaders(CONTENT_TYPE -> "application/x-download", CONTENT_DISPOSITION -> "attachment; filename=image.png") 
} 

स्थिरांक सूचना देखते हैं:

बेशक

अगली बात तुम क्या करना चाहते हैं यह एक वास्तविक डाउनलोड जो इतनी तरह से किया जाता है बनाते हैं

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