如何在程序中判断用户上的图片本身就是.png格式,而并非其它格式图片把后缀名改成.png的.
比如:要上传.png格式图片,用户没有,把一张123.jpg或其它格式图片改了一下后缀名(123.png),并非用工具去真的把图片转成
.png格式的.
因为把上传图片下载下来时,点击另存为,没有.png格式的选项.
请高手帮帮忙!
比如:要上传.png格式图片,用户没有,把一张123.jpg或其它格式图片改了一下后缀名(123.png),并非用工具去真的把图片转成
.png格式的.
因为把上传图片下载下来时,点击另存为,没有.png格式的选项.
请高手帮帮忙!
不过一般来说你不用去判断,人家上传东西错了就错了,显示不了就是了。你只要把大小控制就行了
这里有一些
图片的mime 类型 不管你是改成什么后缀名都不会变.
但是要区分浏览器. 看到区分浏览器,我就头大.最讨厌弄浏览器兼容性这方面的问题了.
有人懂mime这么?
<root>
<Token Format=".jpg">
<DNA>255, 216</DNA>
<DNA>255, 217</DNA>
</Token>
<Token Format=".jpeg">
<DNA>255, 216</DNA>
<DNA>255, 217</DNA>
</Token>
<Token Format=".bmp">
<DNA>66, 77</DNA>
<DNA />
</Token>
<Token Format=".png">
<DNA>137, 80, 78, 71, 13, 10, 26, 10</DNA>
<DNA />
</Token>
<Token Format=".gif">
<DNA>71, 73, 70, 56</DNA>
<DNA />
</Token>
<Token Format=".exe">
<DNA>77, 90</DNA>
<DNA />
</Token>
<Token Format=".com">
<DNA>77, 90</DNA>
<DNA />
</Token>
<Token Format=".rar">
<DNA>82, 97, 114, 33, 26, 7, 0</DNA>
<DNA />
</Token>
<Token Format=".zip">
<DNA>80, 75, 3, 4</DNA>
<DNA />
</Token>
</root>
System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
string fileclass = "";
byte buffer;
try
{
buffer = r.ReadByte();
fileclass = buffer.ToString();
buffer = r.ReadByte();
fileclass += buffer.ToString();
}
catch
{
return result;
}
r.Close();
fs.Close(); //重置文件名
string filename = "";
if (fileclass == "255216")//后缀名设置为jpg格式
{
//获取文件后缀名
string filetype = file.Substring(file.LastIndexOf("."), file.Length - file.LastIndexOf(".")); if (filetype.ToLower() != ".jpg" && filetype.ToLower() != "jpeg")
{
filename = hifile.Substring(0, hifile.Length - (hifile.Length - hifile.LastIndexOf("."))) + ".jpg";
ReName(hifile, filename);
message = file.Substring(0, file.Length - (file.Length - file.LastIndexOf("."))) + ".jpg";
message = message.Replace("/", "\\");
result = 1;
}
else
{
result = 1;
message = file.Replace("/", "\\");
} }
else if (fileclass == "7173")//后缀名设置为gif
{
filename = hifile.Substring(0, hifile.Length - (hifile.Length - hifile.LastIndexOf("."))) + ".gif";
ReName(hifile, filename);
message = file.Substring(0, file.Length - (file.Length - file.LastIndexOf("."))) + ".gif";
message = message.Replace("/", "\\");
result = 1;
}
else if (fileclass == "6677")//后缀名设置为bmp
{
filename = hifile.Substring(0, hifile.Length - (hifile.Length - hifile.LastIndexOf("."))) + ".bmp";
ReName(hifile, filename);
message = file.Substring(0, file.Length - (file.Length - file.LastIndexOf("."))) + ".bmp";
message = message.Replace("/", "\\");
result = 1;
}
else if (fileclass == "13780")//后缀名设置为png
{
filename = hifile.Substring(0, hifile.Length - (hifile.Length - hifile.LastIndexOf("."))) + ".png";
ReName(hifile, filename);
message = file.Substring(0, file.Length - (file.Length - file.LastIndexOf("."))) + ".png";
message = message.Replace("/", "\\");
result = 1;
} 参考 从别的地方弄的.
'.gif' : 'image/gif',
'.jpg' : 'image/jpeg',
'.png' : 'image/png',
Bitmap partImg = new Bitmap(100, 100);partImg.Save(filePath, ImageFormat.Jpeg);
这个不知行不行
http://hi.baidu.com/txbzpfwl/blog/item/fd9b42441a222a8bb2b7dc03.htmlhttp://blog.chinaunix.net/u2/64377/showart_511450.html
参考MSDN:
http://msdn.microsoft.com/zh-cn/library/system.drawing.image.rawformat%28VS.80%29.aspx
以下是一段实例代码
转自:http://kb.cnblogs.com/a/1494261/ /// <summary>
/// 返回图片格式(和文件名后缀无关)
/// </summary>
/// <param name="strImgPath">图片路径及名称</param>
/// <returns>jpeg\gif\bmp\png\tif\icon\wmf</returns>
string GetImageFormat(string strImgFilePath)
{
string strImgFormat = "";
System.Drawing.Image imgSrc = System.Drawing.Image.FromFile(strImgFilePath); if (imgSrc.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
strImgFormat = "jpeg";
else if (imgSrc.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif))
strImgFormat = "gif";
else if (imgSrc.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp))
strImgFormat = "bmp";
else if (imgSrc.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
strImgFormat = "png";
else if (imgSrc.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff))
strImgFormat = "tiff";
else if (imgSrc.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Icon))
strImgFormat = "icon";
else if (imgSrc.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Wmf))
strImgFormat = "wmf"; return strImgFormat; }