Как показать файл на жестком диске asp.net mvc - PullRequest
0 голосов
/ 18 апреля 2011

У меня есть веб-страница на моем сайте asp.net mvc, где пользователь загружает файл.Теперь моя проблема заключается в том, что мне нужно показать на странице ссылку, по которой пользователь сможет просмотреть файл.

Пользователь может загрузить файл или ввести doc, docx и pdf.

Как я могу это сделать.

Пожалуйста, помогите,

Спасибо

Ответы [ 3 ]

1 голос
/ 18 апреля 2011

Самое простое, что вы можете сделать, это использовать System.IO.Directory.GetFiles(..), например:

var myModel = new myModel {
    Files = Directory.GetFiles(@"c:\temp")
}

Однако, Directory.GetFiles(..) предоставит вам массив строк, с которыми может быть немного сложно работать. Если вам нужно использовать файлы более объектно-ориентированным образом, обратитесь к классам DirectoryInfo и FileInfo.

Пример:

var directory = new DirectoryInfo(@"c:\temp");
foreach (FileInfo fi in directory.GetFiles()) {
   Console.WriteLine(@"FileName: {0}", fi.Name);
}

Ссылка MSDN: http://msdn.microsoft.com/en-us/library/07wt70x2.aspx

0 голосов
/ 20 апреля 2011

Спасибо за ответ.

Но я искал что-то подобное, что решило мою проблему.

 [HttpGet]
    public ActionResult Index(string id)
    {
        string extension = id.Substring(id.IndexOf(".") + 1);
        string contentType = string.Empty;

        if (extension == "doc" || extension == "docx")
        {
            contentType = "application/msword";
        }
        else if (extension == "pdf")
        {
            contentType = "application/pdf";
        }

        if (string.IsNullOrEmpty(contentType))
        {
            throw new Exception("Invalid file");
        }
        return File(Server.MapPath("~/Docs/" + id), contentType);
    }

Где параметр id в приведенном выше коде - это имя файла.

Благодарю

0 голосов
/ 18 апреля 2011

Если вы спрашиваете, как избежать перехвата ссылок на скачивание MVC-маршрутизацией, взгляните на http://weblogs.asp.net/pjohnson/archive/2010/11/11/mvc-s-ignoreroute-syntax.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...