आप एक हैंडलर बनाने के लिए इस work.It आप अच्छी तरह से संशोधित कर सकते हैं, तो अधिक सुरक्षित है कोशिश कर सकते हैं। इस काम के लिए, आपको अपने पृष्ठ में फ़ाइल पथ एन्क्रिप्ट करना होगा जहां आपने फ़ाइल के लिए एक लिंक डाला था।
<a href=\"Downloads.ashx?f={0}\" target=\"_blank\">Your link to file</a>
//{0} -> Encrypted file path
//target = _blank force browser to download file in another window
here
में एन्क्रिप्शन तकनीक के बहुत सारे अपने हैंडलर पेज में हैं, आप मूल में फ़ाइल पथ डिक्रिप्ट करने के लिए ताकि आप इसे System.IO
पुस्तकालयों के साथ पढ़ सकते हैं की जरूरत है।
context.Response.ContentType = ""; //-->MimeType for your file's extension
आप रजिस्ट्री द्वारा अपना माइम टाइप निर्दिष्ट कर सकते हैं जब तक कि आपका माइम-प्रकार छवियों के रूप में स्थिर न हो।
string mimeType = Registry.GetValue(string.Format(@"HKEY_CLASSES_ROOT\.{0}",
Path.GetExtension(decryptedfilePath)), "Content Type", null).ToString();
//Then everything is ready for download
byte[] buffer = File.ReadAllBytes(decryptedfilePath);
context.Response.OutputStream.Write(buffer, 0 , buffer.Length);
context.Response.Flush();
शुभकामनाएँ।
मुझे उत्सुकता है कि आप केवल उस फ़ाइल को इंगित करने वाले यूआरएल का निर्माण क्यों नहीं करते हैं जिसे आप क्लाइंट को पेश करना चाहते हैं, और ब्राउज़र को अपनी फ़ाइल डाउनलोड करने के लिए उपयोग करने के लिए दें। ? – 7wp
यह एक txt फ़ाइल है, जो आमतौर पर सीधे ब्राउज़र में दिखाया जाएगा। यदि सामग्री प्रकार "एप्लिकेशन/ऑक्टेट-स्ट्रीम" पर सेट है, तो मुझे लगता है कि ब्राउज़र इसके बजाय डिस्क पर डाउनलोड शुरू करेगा। – awe
अच्छी तरह से "txt" फ़ाइल सिर्फ एक उदाहरण है। और यह सीधे ब्राउज़र में प्रदर्शित नहीं होता है। इस प्रतिक्रिया के साथ यह हमेशा डाउनलोड करने योग्य है। –