如何限制其他格式的文件在选择要上传的文件时显示
本文关键字:文件 显示 何限制 其他 格式 选择 | 更新日期: 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>
希望对你有帮助