如何限制其他格式的文件在选择要上传的文件时显示

本文关键字:文件 显示 何限制 其他 格式 选择 | 更新日期: 2023-09-27 18:12:51

在我的项目中,我正在上传Doc或PDF文件供用户参考,在"文件上传"期间浏览包括Doc和PDF文件在内的所有文件以显示选择,因此我在代码中使用IF条件来检查所选文件是Doc还是PDF,但我只想显示Doc和PDF文件以供选择,以丢弃IF语句,我的代码是,

        if (FileUpload1.HasFile != false)
        {
            // Read the file and convert it to Byte Array
            string filePath = FileUpload1.PostedFile.FileName;
            int size = FileUpload1.PostedFile.ContentLength;
            string filename = Path.GetFileName(filePath);
            string ext = Path.GetExtension(filename);
            string contenttype = String.Empty;
            int bufferSize = 1;
            byte[] buffer = new byte[bufferSize];
            //Set the contenttype based on File Extension
            switch (ext)
            {
                case ".doc":
                    contenttype = "application/vnd.ms-word";
                    break;
                case ".docx":
                    contenttype = "application/vnd.ms-word";
                    break;
                case ".pdf":
                    contenttype = "application/pdf";
                    break;
            }
            if (size <= 5242880)
            {
                if (contenttype != String.Empty && ext == ".doc" || ext == ".docx" || ext == ".pdf")
                {
                    Stream fs = FileUpload1.PostedFile.InputStream;
                    BinaryReader br = new BinaryReader(fs);
                    Byte[] bytes = br.ReadBytes((Int32)fs.Length);
                    string fname = @"E:'Rajesh_Kumar'Application'Valuation'ExamManagement'ExamManagement'FileUpload";
                    Directory.CreateDirectory(fname);
                    string strFullFilename = @"E:'Rajesh_Kumar'Application'Valuation'ExamManagement'ExamManagement'FileUpload'" + FileUpload1.FileName;
                    //SqlCommand   qry = new SqlCommand("select Filepath from answerkey");
                     FileInfo file = new FileInfo(strFullFilename);
                    //FileInfo file1 = new FileInfo(qry);
                    fname = Path.Combine(fname, strFullFilename);
                    if(file.Exists)
                    {
                        lblMessage.Visible = true;
                        lblMessage.ForeColor = System.Drawing.Color.Red;
                        lblMessage.Text = "File - ''"+filename+"'' - already Exists in the Database !!!";
                        FileUpload1.Focus();
                   }
                    else
                    {

                        //insert the file into database
                        string strQuery = "insert into answerkey(Filename, Type, Data,Filepath)" + " values (@Filename, @Type, @Data,@Filepath)";
                        SqlCommand cmd = new SqlCommand(strQuery);
                        cmd.Parameters.Add("@Filename", SqlDbType.VarChar).Value = filename;
                        cmd.Parameters.Add("@Type", SqlDbType.VarChar).Value = contenttype;
                        cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes;
                        cmd.Parameters.Add("@Filepath", SqlDbType.VarChar).Value = filePath;
                        InsertUpdateData(cmd);
                        File.Copy(filePath, strFullFilename, true);
                       lblMessage.Visible = true;
                        lblMessage.ForeColor = System.Drawing.Color.Green;
                        string filename1 = Path.GetFileNameWithoutExtension(filename);
                        lblMessage.Text =  "File -      '' " + filename1 + " ''  - of Size - ''" + size + " bytes''  - has been Uploaded Successfully";

                    }
                }
                else
                {
                    lblMessage.Visible = true;
                    lblMessage.ForeColor = System.Drawing.Color.Red;
                    lblMessage.Text = "File format not recognised.Upload Word/PDF formats Only";
                    FileUpload1.Focus();

                }

            }
            else
            {
                lblMessage.Visible = true;
                lblMessage.ForeColor = System.Drawing.Color.Red;
                lblMessage.Text = "File Size is larger than 5 MB !!!";
                FileUpload1.Focus();
            }
        }
        else
        {
            lblMessage.Visible = true;
            lblMessage.ForeColor = System.Drawing.Color.Red;
            lblMessage.Text = "Please Select a File !!!";
            FileUpload1.Focus();
        }

        }

如何限制其他格式的文件在选择要上传的文件时显示

在web的情况下,你不能这样做。

你可以查看链接:
如何在FileUpload控件中限制文件类型

使用正则表达式验证器:

<asp:RegularExpressionValidator
                id="RegularExpressionValidator1" runat="server"
                ErrorMessage="Only Word and PDF files are allowed!"
                ValidationExpression="^(([a-zA-Z]:)|(''{2}'w+)'$?)(''('w['w].*))(.pdf|.PDF|.doc|.DOC|.docx|.DOCX)$"
                ControlToValidate="FileUpload1" CssClass="text-red"></asp:RegularExpressionValidator>

希望对你有帮助