gpt4 book ai didi

c# - .NET C# 图片上传验证

转载 作者:太空宇宙 更新时间:2023-11-03 15:11:02 26 4
gpt4 key购买 nike

我目前正在开发一个网站,出于安全目的,用户可以在该网站上上传有效图像,而不能上传任何其他文件类型。 Atm 我有此代码,但图像扩展名仍可能被篡改。

if (extension == ".jpg" || extension == ".jpeg" || extension == ".JPG" || extension == ".gif" || extension == ".png"

有什么方法可以绝对确保只允许使用这些图像格式并且不能更改它们(例如每种格式的全局代码)。谢谢

最佳答案

最好检查 contentType 而不是扩展名。

您可以在这里找到一个非常全面的列表:http://www.freeformatter.com/mime-types-list.html .

可以通过以下方式进行简单的检查:

if (myFile.ContentType == "video/mpeg")
{
// Do your thing
}
else{
// error
}

如果你想检查更多,你可以使用这个例如:

string[] filetypes = { "application/pdf", "image/jpeg", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "text/plain", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.ms-excel" };
if (!filetypes.Contains(myFile.File.ContentType))
{
//not accepted content type
}

你还可以通过尝试实例化一个新的位图来检查它是否是一个有效的图像

try
{
using (var bitmap = new System.Drawing.Bitmap(myFile.InputStream))
{
}
}
catch (Exception)
{
return false;
}

关于c# - .NET C# 图片上传验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41124496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com