यदि फ़ाइल आपके एप्लिकेशन फ़ोल्डर्स के अंदर स्थित नहीं है और क्लाइंट से सीधे पहुंच योग्य नहीं है तो आपके पास एक नियंत्रक क्रिया हो सकती है जो क्लाइंट को फ़ाइल सामग्री स्ट्रीम करेगी। एक लंगर का उपयोग करने के वैकल्पिक रूप से
@Html.ActionLink("Button 1", "Download", "SomeController")
:
public ActionResult Download()
{
string file = @"c:\someFolder\foo.xlsx";
string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
return File(file, controntType, Path.GetFileName(file));
}
और फिर एक लंगर इस नियंत्रक कार्रवाई की ओर इशारा करते के साथ अपने बटन की जगह: यह आपके नियंत्रक कार्रवाई से एक FileResult
लौटने File
विधि का उपयोग कर प्राप्त किया जा सकता आप एक HTML फॉर्म का भी उपयोग कर सकते हैं:
@using (Html.BeginForm("Download", "SomeController", FormMethod.Post))
{
<button type="submit">Button 1</button>
}
यदि फ़ाइल क्लाइंट फ़ोल्डर से कुछ गैर-सुलभ के अंदर स्थित है
string file = HostingEnvironment.MapPath("~/App_Data/foo.xlsx");
स्रोत
2014-09-07 14:39:25
क्या अगर फाइल अलग सर्वर में है? मान लें कि सर्वर का नाम "VUP-1" है? और कहें कि पथ "c: \ someFolder \ foo.xlsx" -> सर्वर VUP-1 में है –