Jerrell77 Ответов: 5

Проверка типов изображений Fileupload C# asp.net


Здравствуйте, у меня есть проблемы с проверкой типов загрузки файлов. Остальные работают нормально, но я понятия не имею, как проверить типы файлов.

Ниже приведена часть, где я проверяю свои типы файлов:

private void StartUpLoad()
   {
       string companyID = this.Label1.Text;

       string imgName = FileUpload1.FileName;

       string imgPath = "~/Uploads/" + imgName;

       int imgSize = FileUpload1.PostedFile.ContentLength;

       string ext = System.IO.Path.GetExtension(this.FileUpload1.PostedFile.FileName);

       if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "")
       {

           if (FileUpload1.PostedFile.ContentLength > 1000000)
           {
               Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('File is too big.')", true);
           }
           if (ext != ".jpg" || ext != ".png" || ext != ".gif" || ext !=".jpeg")
           {
               Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('Please choose only .jpg, .png and .gif image types!')", true);
           }

           else
           {

               FileUpload1.SaveAs(Server.MapPath(imgPath));
               Image1.ImageUrl = imgPath;
               Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('Image saved!')", true);

               byte[] theImage = new byte[FileUpload1.PostedFile.ContentLength];
               HttpPostedFile Image = FileUpload1.PostedFile;
               Image.InputStream.Read(theImage, 0, (int)FileUpload1.PostedFile.ContentLength);

               int length = theImage.Length;
               string fileName = FileUpload1.FileName.ToString();
               string type = FileUpload1.PostedFile.ContentType;

               int size = FileUpload1.PostedFile.ContentLength;
               if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "")
               {

                   WP_advBLL canwork = new WP_advBLL();
                   canwork.ExecuteInsert(theImage, type, size, fileName, length, companyID);
                   Response.Write("File has been uploaded successfully!");
                   Session["imageID"] = imgName;
               }
           }

       }

жирные линии-это проверка типов файлов, но она не работает. есть идеи, почему?

5 Ответов

Рейтинг:
32

maneavnash

я изменил ваш код Пожалуйста смотрите это

string companyID = this.Label1.Text;

        string imgName = FileUpload1.FileName;

        string imgPath = "~/Uploads/" + imgName;

        int imgSize = FileUpload1.PostedFile.ContentLength;

        string ext = System.IO.Path.GetExtension(this.FileUpload1.PostedFile.FileName);

        if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "")
        {

            if (FileUpload1.PostedFile.ContentLength > 1000000)
            {
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('File is too big.')", true);
            }
//modified this code 
            if (ext.ToUpper().Trim() != ".JPG"  && ext.ToUpper() != ".PNG" && ext.ToUpper() != ".GIF" && ext.ToUpper() != ".JPEG")
            {
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('Please choose only .jpg, .png and .gif image types!')", true);
            }

            else
            {

                FileUpload1.SaveAs(Server.MapPath(imgPath));
                Image1.ImageUrl = imgPath;
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('Image saved!')", true);

                byte[] theImage = new byte[FileUpload1.PostedFile.ContentLength];
                HttpPostedFile Image = FileUpload1.PostedFile;
                Image.InputStream.Read(theImage, 0, (int)FileUpload1.PostedFile.ContentLength);

                int length = theImage.Length;
                string fileName = FileUpload1.FileName.ToString();
                string type = FileUpload1.PostedFile.ContentType;

                int size = FileUpload1.PostedFile.ContentLength;
                if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "")
                {

                      WP_advBLL canwork = new WP_advBLL();
                    canwork.ExecuteInsert(theImage, type, size, fileName, length, companyID);
                    Response.Write("File has been uploaded successfully!");
                    Session["imageID"] = imgName;
                }
            }

        }


RaviRanjanKr

Всегда оборачивайте свой код в предварительные теги.

maneavnash

благодарить

Jerrell77

Спасибо вам, ребята! Это именно то, что мне нужно! :)

mossyelropy

gooooooooooooooooooooooood работу очень приятно !

Рейтинг:
2

Jignesh Khant

Попробуйте этот валидатор регулярных выражений:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"

                   ControlToValidate="fileupload1"

                   ErrorMessage="Only .jpg,.png,.jpeg,.gif Files are allowed" Font-Bold="True"

                   Font-Size="Medium"

                   ValidationExpression="(.*?)\.(jpg|jpeg|png|gif|JPG|JPEG|PNG|GIF)$"></asp:RegularExpressionValidator>


Рейтинг:
1

Member 12710902

[эта логика неверна в этом условии всегда верно, если я выберу изображение .png это не .jpg, то это даст ошибку]
так и должно быть !!!
если (ВН == ".форматы jpg" || доб == ".ПНГ" || доб == ".джиф" || доб ==".в формате JPEG")
{
FileUpload1.SaveAs(Сервер.MapPath(imgPath));
Рис1.ImageUrl = imgPath;
Страница.ClientScript.RegisterClientScriptBlock(typeof на(страница), "тревога", "имидж оповещения('сохранен!')", правда);

byte[] theImage = новый байт[FileUpload1.PostedFile.ContentLength];
HttpPostedFile Image = FileUpload1.PostedFile;
Изображение.InputStream.Read(theImage, 0, (int)FileUpload1.PostedFile.ContentLength);

int length = изображение.Длина;
строка fileName = FileUpload1.FileName.Метод toString();
строковый тип = FileUpload1.PostedFile.Значение contentType;

int size = FileUpload1.PostedFile.ContentLength;
if (FileUpload1.PostedFile != null &amp;&amp; FileUpload1.PostedFile.Имя файла != "")
{

WP_advBLL canwork = новый WP_advBLL();
может работать.ExecuteInsert(изображение, тип, размер, имя файла, длина, идентификатор компании);
Ответ.Write("файл успешно загружен!");
Сеанс["imageID"] = imgName;
}
}

еще
{

Страница.ClientScript.RegisterClientScriptBlock(typeof на(страница), "Тревога", "тревога('Пожалуйста, выберите только .в формате JPG, .PNG и .рисунок видах!')", правда);

}


Рейтинг:
0

Sushil Mate

private void StartUpLoad()
    {
        string companyID = this.Label1.Text;
 
        string imgName = FileUpload1.FileName;
 
        string imgPath = "~/Uploads/" + imgName;
 
        int imgSize = FileUpload1.PostedFile.ContentLength;
 
        string ext = System.IO.Path.GetExtension(this.FileUpload1.PostedFile.FileName).ToLower();
 
        if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "")
        {
 
            if (FileUpload1.PostedFile.ContentLength > 1000000)
            {
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('File is too big.')", true);
            }
            if (ext != ".jpg" || ext != ".png" || ext != ".gif" || ext !=".jpeg")
            {
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('Please choose only .jpg, .png and .gif image types!')", true);
            }
 
            else
            {
 
                FileUpload1.SaveAs(Server.MapPath(imgPath));
                Image1.ImageUrl = imgPath;
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('Image saved!')", true);
 
                byte[] theImage = new byte[FileUpload1.PostedFile.ContentLength];
                HttpPostedFile Image = FileUpload1.PostedFile;
                Image.InputStream.Read(theImage, 0, (int)FileUpload1.PostedFile.ContentLength);
 
                int length = theImage.Length;
                string fileName = FileUpload1.FileName.ToString();
                string type = FileUpload1.PostedFile.ContentType;
 
                int size = FileUpload1.PostedFile.ContentLength;
                if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "")
                {
 
                    WP_advBLL canwork = new WP_advBLL();
                    canwork.ExecuteInsert(theImage, type, size, fileName, length, companyID);
                    Response.Write("File has been uploaded successfully!");
                    Session["imageID"] = imgName;
                }
            }
 
        }