ylbtech- ASP.NET MVC:ASP.NET MVC file download sample |
功能描述:ASP.NET MVC file download sample數據庫
2,TechnologyAndTheEnvironment(技術與環境) |
操做系統:windows |
windowsapp |
開發語言:框架 |
C#數據庫設計 |
開發框架:ide |
ASP.NET MVCspa |
數據庫:操作系統 |
|
開發軟件:設計 |
Microsoft Visual Studio 2010code |
||
開發技術 |
ASP.NET MVC |
3,DatabaseDesign(數據庫設計) |
4,FeatureScreenshots(功能截圖) |
4.App_Data
/App_Data/download/testcert2.cer
/App_Data/download/testdata.zip
/App_Data/download/testfile.txt
/App_Data/download/XMLFile2.xml
4.Models
4.Views
/Views/File/List.aspx
<h2> All files available for download:</h2> <table style="width: 100%"> <thead> <td> FileName </td> <td> Size(bytes) </td> <td style="width: 40"> </td> </thead> <% var fileList = (List<System.IO.FileInfo>)Model; foreach (var file in fileList) { %> <tr> <td> <%= Html.ActionLink(file.Name,"Download",new {Action="Download", fn=file}) %> </td> <td> <%=file.Length %> </td> <td> <a href='<%= ResolveUrl("~/File/Download/"+ file.Name) %>'> <img width="30" height="30" src='<%= ResolveUrl("~/images/download-icon.gif") %>' /> </a> </td> </tr> <%} %> </table>
4.Controllers
/Controllers/FileController.cs
/****************************** Module Header ******************************\ Module Name: FileController.cs Project: CSASPNETMVCFileDownload Copyright (c) Microsoft Corporation. This module contains the FileController class. FileController is the controller dedicated for file downloading functionality. For request to list file, FileController will call List Action to return the file list and display it via File/List view File request to download a certain file, FileController will call the Download action to return the stream of the requested file. This source is subject to the Microsoft Public License. See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL. All other rights reserved. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. \***************************************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Ajax; using System.IO; namespace CSASPNETMVCFileDownload.Controllers { public class FileController : Controller { // Action for list all the files in "~/App_Data/download" directory public ActionResult List() { // Retrieve the file list. DirectoryInfo dir = new DirectoryInfo(Server.MapPath("~/App_Data/download/")); // Filter it via LINQ to Object. var files = from f in dir.GetFiles("*.*", SearchOption.TopDirectoryOnly) where f.Extension != "exe" select f; // Call the corresponding View. return View(files.ToList()); } // Action for returning the binary stream of a specified file. public ActionResult Download(string fn) { // Check whether the requested file is valid. string pfn = Server.MapPath("~/App_Data/download/" + fn); if (!System.IO.File.Exists(pfn)) { throw new ArgumentException("Invalid file name or file not exists!"); } // Use BinaryContentResult to encapsulate the file content and return it. return new BinaryContentResult() { FileName = fn, ContentType = "application/octet-stream", Content = System.IO.File.ReadAllBytes(pfn) }; } } }
6,Sample|Explain FreeDownload(示例|講解案例下載) |
做者:ylbtech 出處:http://ylbtech.cnblogs.com/ 本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。 |