Веб: просмотр необработанного содержимого файла из FileName и FileContent. - PullRequest
1 голос
/ 01 декабря 2010

Я использую ASP MVC и хочу разрешить пользователю загружать / просматривать файлы с моего веб-сервера.

Файлы не расположены на этом веб-сервере.

Я знаю содержимое файла (массив byte[]), а также имя файла .

Мне нужно то же поведение, что и в Web Broswer.Например, если тип mime - это текст, я хочу увидеть текст, если это изображение, то же самое, если оно двоичное, предложить его для загрузки.

Каков наилучший способ сделать это?

Спасибо заранее.

1 Ответ

0 голосов
/ 01 декабря 2010

Ответ для изображений доступен здесь

Для других типов вы должны определить тип MIME по расширению имени файла. Вы можете использовать либо реестр Windows, либо известную хеш-таблицу, либо конфигурацию IIS (если она работает на IIS).

Если вы планируете использовать реестр, вот код, который определяет тип содержимого MIME для данного расширения:

    public static string GetRegistryContentType(string fileName)
    {
        if (fileName == null)
            throw new ArgumentNullException("fileName");

        // determine extension
        string extension = System.IO.Path.GetExtension(fileName);

        string contentType = null;
        using (Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(extension))
        {
            if (key != null)
            {
                object ct = key.GetValue("Content Type");
                key.Close();
                if (ct != null)
                {
                    contentType = ct as string;
                }
            }
        }
        if (contentType == null)
        {
            contentType = "application/octet-stream"; // default content type
        }
        return contentType;
    }
...