2010-09-23 2 views
2

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

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

Спасибо

+1

Может быть, попробуйте найти этот сайт в первую очередь? http://stackoverflow.com/questions/2506821, http://stackoverflow.com/questions/3185937, http://stackoverflow.com/questions/3052962, http://stackoverflow.com/questions/2928806 –

+1

http: //aspalliance.com/1614_Adding_Filter_Action_to_FileUpload_Control_of_ASPNET_20.all –

ответ

4
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"; 
    } 
+0

Отлично, thx – 2010-09-23 12:14:13

1

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

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

0

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

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

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

1

Упрощенная с помощью LINQ/лямбда:

string ext = Path.GetExtension(fileUpload1.FileName); 
string[] validFileTypes = { "bmp", "jpg", "jpeg", "png" }; 
bool isValidType = validFileTypes.Any(t => ext == "." + t); 
if(isValidType) 
    'do something 
Смежные вопросы