How do I check if the uploaded file has the right format? [duplicate]

情到浓时终转凉″ 提交于 2019-12-13 07:21:13

问题


I work with c# and asp.net

I created a webpage with a web form where you enter your information in order to submit it. There is also a file upload on my page: <asp:FileUpload ID="FileUploadPassfoto" runat="server"/> In my c# code behind i coded a IF-Loop which checks if something got uploaded. Like this:

if (FileUploadPassfoto.HasFile == true)
{
      HttpPostedFile file = FileUploadPassfoto.PostedFile;
      using (BinaryReader binaryReader = new BinaryReader(file.InputStream))
      {
          lehrling.passfoto = binaryReader.ReadBytes(file.ContentLength);
      }
      LabelPassfotoError.Visible = false;
}
else
{
     LabelPassfotoError.Visible = true;
     LabelError.Visible = true;
}

What it does is: As i said it checks if something got uploaded. If nothing got uploaded a ErrorLabel will be shown so the user knows he forgot to upload.

What i want to check too, is if the uploaded file is a image. To be more clear i only want to accept .jpg/.bmp and .gif. If a wrong format gets uploaded i want to display my ErrorLabel as well.

I dont really know how i should do this, can you please help me? Thank you


回答1:


    protected void Button1_Click(object sender, EventArgs e)
    {
        string strFileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
        string strFileWithoutExt = Path.GetFileNameWithoutExtension(strFileName);
        string strExtension = Path.GetExtension(strFileName);
        if (strExtension == ".jpg" || strExtension == ".bmp" || strExtension == ".gif")
        {
            string strImageFolder = "~/YourFilePath/";
            if (!Directory.Exists(Server.MapPath(strImageFolder)))
                Directory.CreateDirectory(Server.MapPath(strImageFolder));
            string _strPath = Server.MapPath(strImageFolder) + strFileName;
            FileUpload1.PostedFile.SaveAs(_strPath);
            Label1.Text = "Upload status: File uploaded.";
        }
        else
            Label1.Text = "Upload status: only .jpg,.bmp and .gif file are allowed!";
    }

Hope Its Help You much more....




回答2:


Here is a simplified version of the link that David has posted in the comments.

HttpPostedFile file = FileUploadPassfoto.PostedFile;
if (file.ContentType == "image/x-png" || file.ContentType == "image/pjpeg" || file.ContentType == "image/jpeg" || file.ContentType == "image/bmp" || file.ContentType == "image/png" || file.ContentType == "image/gif")
{
    // it is an image
}


来源:https://stackoverflow.com/questions/38789603/how-do-i-check-if-the-uploaded-file-has-the-right-format

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!