![](/img/trans.png)
[英]C# HttpRequestMessage Content-Type force as "application/json" only
[英]how to check content-type/application text in c#
我使用此代码检查内容类型:
字符串fileSize = FileUpload1.PostedFile.ContentType;
但是,如果我将其他文件保存为.txt格式,则表示允许。
如何在C#中检查原始文本文件
如果我了解您的问题解答,那么您正在寻找验证发布的文件类型的方法。 如果是这样,则可以检查文件扩展名。
if(FileUpload1.PostedFile.FileName.ToLowerInvariant().EndsWith(".txt"))
{
// Do stuffs
}
更新注释:如果文件出现故障,则可以使用以下方法来验证它是否为二进制文件; 如果不是,您可以将其视为文本文件。 好吧,为了使用此方法,您需要临时保存文件或需要更改方法,以便可以直接从流中读取文件。
注意:此方法不能为您提供100%的准确结果。 但是,您可以期望70-80%。 这是此代码的源链接 。
private bool IsBinaryFile(string filePath, int sampleSize = 10240)
{
if (!File.Exists(filePath))
throw new ArgumentException("File path is not valid", filePath);
var buffer = new char[sampleSize];
string sampleContent;
using (var sr = new StreamReader(filePath))
{
int length = sr.Read(buffer, 0, sampleSize);
sampleContent = new string(buffer, 0, length);
}
//Look for 4 consecutive binary zeroes
if (sampleContent.Contains("\0\0\0\0"))
return true;
return false;
}
试试看(从类似的问题中得到它):
string contentType = FileUpload1.PostedFile.ContentType
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.