2016-02-06 8 views
13

का उपयोग कर फ़ाइल डाउनलोड करें मुझे एमवीसी कोर का उपयोग कर फ़ाइल डाउनलोड करने का संदर्भ नहीं मिल रहा है।एमवीसी कोर

हमारे पास हमारी वेबसाइट से सदस्यों को डाउनलोड करने के लिए एक एकल exe फ़ाइल है। अतीत में हमने

<a href=(file path)> Download < /a> हमारे उपयोगकर्ताओं को क्लिक करने के लिए रखा है। मैं DownloadLink साथ

<a [email protected]["DownloadLink"]> Download < /a> 

की तर्ज फ़ाइल पथ के साथ आबादी के साथ MVC कोर में कुछ बराबर करना चाहते हैं।

public class DownloadController : Controller 
{ 
    [HttpGet] 
    public IActionResult Index() 
    { 
     ViewData["DownloadLink"] = ($"~/Downloads/{V9.Version}.exe"); 
     return View(); 
    } 
} 

`

लिंक <a [email protected]["DownloadLink"]> Download < /a> सही पथ हो जाता है, लेकिन जब क्लिक केवल पता पट्टी में पथ बना देता है। डाउनलोड लिंक सेट करने का कोई आसान तरीका है?

+1

आपकी कार्रवाई एक सामग्री परिणाम लौटना चाहिए, नहीं किसी दृश्य से कोई फ़ाइल डाउनलोड करने के लिए HttpClient का उपयोग करने का तरीका देखें। नियंत्रक में देखें। फ़ाइल विधि। –

उत्तर

22

मैं इस समाधान

public FileResult Download() 
    { 
     var fileName = $"{V9.Version}.exe"; 
     var filepath = $"Downloads/{fileName}"; 
     byte[] fileBytes = System.IO.File.ReadAllBytes(filepath); 
     return File(fileBytes, "application/x-msdownload", fileName); 
    } 

दृश्य के साथ आने के लिए this जवाब @Tieson टी द्वारा पोस्ट की गई इस्तेमाल किया

<a asp-action="Download" asp-> 
Download 

@Ageonix के बारे में भी सही था अब है ~ wwwroot

पर जाने की आवश्यकता नहीं है
+0

'वापसी फ़ाइल', यह फ़ाइल एक स्थिर वर्ग है, मैं इसका उपयोग नेट कोर 2.0 में कैसे कर सकता हूं? –

+0

फ़ाइल "Microsoft.AspNetCore.Mvc.ControllerBase" में एक स्थिर विधि है जो "FileContentResult" लौटाती है। यह "ठीक()" या "NotFound()" के समान है। FileContentResult OkResult की तरह स्थितिResult है। –

1

मैं कहीं नहीं हूं जहां मैं इसे आजमा सकता हूं, लेकिन ऐसा कुछ ऐसा चाल करेगा?

<a href="<%= Url.Content('~/Downloads/{ V9.Version}.exe') %>"> Download </a> 
+0

सुझाव के लिए @Ageonix धन्यवाद लेकिन वीएस2015 शिकायत कर रहा है href में एक बंद कोण ब्रैकेट गुम है। मुझे लगता है कि डबल-कोट्स के साथ डबल-कोट्स के साथ करना है, लेकिन मैं इसे सही नहीं समझ सकता। – Vague

+0

ओह। इसके बजाय उन आंतरिक उद्धरणों पर एक टिक का उपयोग करने का प्रयास करें। – Ageonix

+1

मुझे यकीन नहीं है कि आपकी साइट संरचना कैसे है, लेकिन यदि आपको 400 मिल रहे हैं तो क्या आपको यकीन है कि आपको वहां टिल्डे (~) की आवश्यकता है? दूसरे शब्दों में, क्या आपने यह देखने के लिए दोबारा जांच की है कि क्या आप सही जगह पर जा रहे हैं? – Ageonix

-4

पूर्व संस्करण में आप URL से फ़ाइल डाउनलोड करने के लिए WebClient का उपयोग कर सकते हैं।

जिसे एएसपीनेट कोर में एचटीपी क्लाइंट के साथ बदल दिया गया है।

यूआरएल यहाँ Using WebClient in ASP.NET 5

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