因为我正在尝试上传一个文件,并且我正在尝试检查它们的扩展名,因为我知道这不是一个好的做法,所以这是我正在做的代码。它工作正常,但由于我在 Apple Mac 用户中遇到问题,他们无法上传 pdf 文件。
if (upload1.HasFile)
{
Finfo = new FileInfo(upload1.PostedFile.FileName);
if (Finfo.Extension.ToLower() == ".docx" || Finfo.Extension.ToLower() == ".doc" || Finfo.Extension.ToLower() == ".xls" ||
Finfo.Extension.ToLower() == ".xlsx" || Finfo.Extension.ToLower() == ".pdf" || Finfo.Extension.ToLower() == ".jpg" ||
Finfo.Extension.ToLower() == ".png" || Finfo.Extension.ToLower() == ".gif" || Finfo.Extension.ToLower() == ".txt" ||
Finfo.Extension.ToLower() == ".mp4" || Finfo.Extension.ToLower() == "ppt" || Finfo.Extension.ToLower() == ".bmp" ||
Finfo.Extension.ToLower() == ".swf" || Finfo.Extension.ToLower() == ".rm" || Finfo.Extension.ToLower() == ".pptx")
{
// Accept File
}
}
现在我想我会使用这段代码,这样它就能解决问题
if (
upload1.PostedFile.ContentType == "text/rtf" ||
upload1.PostedFile.ContentType == "application/doc" ||
upload1.PostedFile.ContentType == "appl/text" ||
upload1.PostedFile.ContentType == "application/vnd.msword" ||
upload1.PostedFile.ContentType == "application/vnd.ms-word" ||
upload1.PostedFile.ContentType == "application/winword" ||
upload1.PostedFile.ContentType == "application/word" ||
upload1.PostedFile.ContentType == "application/msword" ||
upload1.PostedFile.ContentType == "application/x-msw6" ||
upload1.PostedFile.ContentType == "application/x-msword" ||
upload1.PostedFile.ContentType == "application/pdf" ||
FileUpload1.PostedFile.ContentType == "application/x-pdf" ||
upload1.PostedFile.ContentType == "application/vnd.openxmlformats-officedocument.wordprocessingml.document" ||
upload1.PostedFile.ContentType == "application/vnd.openxmlformats-officedocument.wordprocessingml.template"
)
这是接受用户文件的好方法吗?我需要允许除 EXE、DMG、DLL、CS、SQL、BAT、.我如何确保它适用于所有操作系统。
- Apple 用户可以使用 OpenOffice 或其他一些软件上传。所以我们也需要允许这种类型的文件
谁能告诉我如何处理这种情况
最佳答案
内容类型基本上由客户端决定,但大多数客户端可能不会发送内容类型,在这种情况下检查扩展名只是验证文件类型的最佳方式。或者你应该检查两者。我们确实遇到了一些没有发送内容类型的 Mac 客户端的问题。
如果两者都没有,您将不得不检查文件的几个初始字节以检查其类型。
内容类型是个坏主意,因为如果用户没有安装相应的软件,操作系统将发送错误的内容类型。
关于c# - 如何跨操作系统接受具有指定内容类型的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9799166/