Как указать расширение файла в элементе управления загрузкой ASP.Net? - PullRequest
2 голосов
/ 23 сентября 2010

Есть ли способ указать расширение файла для управления загрузкой ASP.NET?Например, я хочу загружать изображения только с расширениями jpg и png.

Я могу легко реализовать это для приложений Windows, но борюсь с ASP.Net

Спасибо

Ответы [ 4 ]

4 голосов
/ 23 сентября 2010
string[] validFileTypes = { "bmp", "jpg", "png" };
    string ext = Path.GetExtension(fileUpload1.FileName);
    bool isValidType = false;

    for (int i = 0; i < validFileTypes.Length; i++)
    {
        if (ext == "." + validFileTypes[i])
        {
            isValidType = true;
            break;
        }
    }

    if (!isValidType)
    {
        lblMessage.Text = "Invalid File Type";
    }
    else
    {
        lblMessage.Text = "File Uploaded Successfullty";
    }
1 голос
/ 13 февраля 2013

Упрощено с использованием LINQ / Lambda:

string ext = Path.GetExtension(fileUpload1.FileName);
string[] validFileTypes = { "bmp", "jpg", "jpeg", "png" };
bool isValidType = validFileTypes.Any(t => ext == "." + t);
if(isValidType)
     'do something
1 голос
/ 23 сентября 2010

Вы можете использовать Javascript, чтобы проверить, заканчивается ли имя файла определенным расширением, но это не мешает кому-то переименовывать любой тип файла в .jpg или .png ... так что вы захотите подтвердить фактический тип файла.файл на сервере ...

Проверка png и jpg на стороне клиента в большинстве случаев поможет предотвратить бесполезную загрузку, хотя ...

0 голосов
/ 23 сентября 2010

Если вы используете Flash, вы можете определить тип файла (очевидно, это не поможет, если кто-то изменит окончание файла).

Мы используем NeatUpload, и это хорошо работает годами:
http://neatupload.codeplex.com/

Существует настройка для типа файла.

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