c# - net - unexpected end of stream the content may have already been read by another component




如何检查上传的文件格式是否正确? (2)

以下是David在评论中发布的链接的简化版本。

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
}

这个问题在这里已经有了答案:

我使用c#和asp.net

我创建了一个网页,在其中输入您的信息以便提交。 还有一个文件上传在我的网页上: <asp:FileUpload ID="FileUploadPassfoto" runat="server"/>在我的c#代码后面编码一个IF循环,检查是否有东西上传。 喜欢这个:

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;
        }

它所做的是:正如我所说,它会检查是否有上传。 如果没有上传,ErrorLabel会显示,所以用户知道他忘了上传。

我想要检查的是,如果上传的文件是图像。 为了更清楚我只想接受.jpg / .bmp和.gif。 如果错误的格式上传,我也想显示我的ErrorLabel。

我真的不知道我应该怎么做,你能帮我吗? 谢谢


    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!";
    }

希望它的帮助你更多....





binaryreader