Как я могу загружать только файлы JPEG? - PullRequest
1 голос
/ 16 января 2011

Я хочу загрузить файлы только в формате jpeg, jpg и т. Д. Но я не смог отфильтровать файлы в открывшемся окне.Я хочу изменить текст «все файлы» на JPEG и т. Д. В asp.net.(С #)

Ответы [ 3 ]

5 голосов
/ 16 января 2011

Вы можете использовать RegularExpressionValidator для проверки, если пользователь пытается загрузить jpeg-файлы или нет:

<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" 
 Text="Upload File" />&nbsp;<br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:RegularExpressionValidator 
 id="RegularExpressionValidator1" runat="server" 
 ErrorMessage="Only jpeg files are allowed!" 
 ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))
    +(.jpg|.JPG|.jpeg|.JPEG)$" 
 ControlToValidate="FileUpload1"></asp:RegularExpressionValidator>
<br />
<asp:RequiredFieldValidator 
 id="RequiredFieldValidator1" runat="server" 
 ErrorMessage="This is a required field!" 
 ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>

на стороне сервера:

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            string fileExt = 
               System.IO.Path.GetExtension(FileUpload1.FileName);

            if (fileExt == ".jpeg" || fileExt == ".jpg")
            {
                //do what you want with this file
            }
            else
            {
                Label1.Text = "Only .jpeg files allowed!";
            }
        }
        else
        {
            Label1.Text = "You have not specified a file.";
        }
    }

Вы должны знать, что любой пользователь может изменить расширение f.e. из .exe в .jpg. Единственный способ проверить тип файла, который я знаю, - использовать функцию из Urlmon.dll. Посмотрите на этот SO-вопрос, если вам нужна дополнительная информация: Используя .NET, как вы можете найти mime-тип файла на основе сигнатуры файла, а не расширения

1 голос
0 голосов
/ 16 января 2011

Это невозможно в текущих версиях HTML.

Вы должны проверить тип загружаемых файлов на стороне сервера.

...