Как представить файлы, такие как Word, Excel и PowerPoint, для загрузки пользователем ASP.NET C # - PullRequest
0 голосов
/ 19 марта 2012

Я работаю над приложением ASP.NET C #, у меня есть таблица, в которой я определил двоичный столбец для хранения файлов (имя столбца attFile), также сохранил имя файла, размер файла и Mimetype, большинство файлов - JPG , PNG, PDF, у меня нет проблем с отображением этих файлов пользователю таким образом, чтобы они могли просматривать изображение, но с такими файлами, как Excel, Word PowerPoint, я не знаю, как их представить, чтобы пользователь мог загрузить его вот как я это делаю

View
@foreach (var item in Model)
{
    if (item.MimeType == "application/pdf")
    {
        <div>
            <object data="@Url.Action("MyImage", new { id = item.id })" 
                              type="application/pdf" 
                              width="250" height="150">
            </object>
        </div>
    }
    else if (item.fotoMimeType == "image/jpeg")
    {
        <div>
            <img src="@Url.Action("MyImage", new { id = item.id })" 
         alt="Picture" style="width:150px"  />
        </div>
    }
    else if (Excel, Word, PowerPoint)
    {
        don't know what to do
    }
}

Controller
public ActionResult MyImage(int id)
{
   AttFile xFile = _db.AttFile.SingleOrDefault(x => (x.id == id));
   return File(xFile.attFile, xFile.MimeType );
}

Моя идея - показать изображение с надписью «Файл Excel», «Файл Word», «Файл PowerPoint», чтобы пользователь мог загрузить этот файл или, возможно, ссылку с именем файла, но я не знаю, как.

Может ли кто-нибудь помочь по этому вопросу?

1 Ответ

0 голосов
/ 19 марта 2012

Вы можете использовать этот код, появляется всплывающее диалоговое окно, которое спрашивает пользователя, хочет ли он сохранить файл или открыть его:

    public void DownLoad(string FName)
    {
        string path = FName;
        System.IO.FileInfo file = new System.IO.FileInfo(path);
        if (file.Exists)
        {
            Response.Clear();
            Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
            Response.AddHeader("Content-Length", file.Length.ToString());
            Response.ContentType = "application/octet-stream";
            Response.WriteFile(file.FullName);
            Response.End();

        }
        else
        {
            Response.Write("This file does not exist.");
        }

    }

строка: Response.ContentType = "application / octet-stream«;сказал, какой тип файла для загрузки.этот тип для файла docx.

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