在.NET中用JS如何判断上传图片是否合格?

JavaScript016

在.NET中用JS如何判断上传图片是否合格?,第1张

你的$('#Image').val()获取的是你本地上传的路径,这是一个字符串类似这样的“c:/1.jpg”

一般使用js判断文件是否存在(val=='')和文件类型(val.split('.')[1]=='jpg'),

判断大小的话虽然可以用ActiveXObject,但这个只能兼容IE,而其他的需要借助其他的东西才能做到

建议你使用js判断文件是否存在和文件格式,然后使用ajax调用后台方法去判断文件大小和保存文件

/// <summary>

/// 检查文件格式是否充许

/// </summary>

/// <param name="ImageFormat">待检查的文件格式</param>

/// <returns>是否合法</returns>

private bool HasThisForamt(string ImageFormat)

{

string ImageFormats = "gif|png|gif|bmp"

if (ImageFormats.ToLower().IndexOf(ImageFormat.ToLower())>=0)

{

return true

}

return false

}

/// <summary>

/// 判断上传的图片文件格式是否合法

/// </summary>

/// <param name="upControl">文件上传控件</param>

/// <returns>是否合法</returns>

private bool IsImageFormat( FileUpload upControl )

{

try

{

using (System.Drawing.Image img = System.Drawing.Image.FromStream(upControl.FileContent))

{

if (HasThisForamt("Bmp") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp)) return true

if (HasThisForamt("Emf") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Emf)) return true

if (HasThisForamt("Exif") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Exif)) return true

if (HasThisForamt("Gif") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif)) return true

if (HasThisForamt("Icon") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Icon)) return true

if (HasThisForamt("Jpeg") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg)) return true

if (HasThisForamt("MemoryBmp") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.MemoryBmp)) return true

if (HasThisForamt("Png") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png)) return true

if (HasThisForamt("Tiff") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff)) return true

if (HasThisForamt("Wmf") &&img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Wmf)) return true

}

}

catch

{

//此文件不是图像文件

}

//您所选择的文件格式不充许

return false

}

//...........

public bool IsEligibilityFileFormat(FileUpload fs)

{

bool xx = false

//System.IO.FileStream fs = new System.IO.FileStream(sFileName, System.IO.FileMode.Open, System.IO.FileAccess.Read)

System.IO.BinaryReader r = new System.IO.BinaryReader(fs.FileContent)

string bx = " "

byte buffer

try

{

buffer = r.ReadByte()

bx = buffer.ToString()

buffer = r.ReadByte()

bx += buffer.ToString()

}

catch (Exception exc)

{

}

r.Close()

//fs.Close()

Response.Write(bx)

if (bx == "7790 " || bx == "8297 " || bx == "8075 ") //7790:exe,8297:rar,8075:pk

{

xx = true

}

return xx

/*

7173 gif

255216 jpg

7790 exe dll

00 ani--ico--cur

7783

255254 --ini

9146 -- ini

5866

6395 hlp

8269 reg

70105 log

205168

7384 chm

5549 txt

117115 txt

5450 txt

5666 psd

255254 rdp

10056 bt种子

8297 rar

64101 bat

*/

}

js里边直接写file.val()(这是Jquery的写发),js里边用docment,就跟普通取值一样,判断是否为空就可以,Action当中,File方法就能判断,if(

File.Exists

)就可以你可以百度下这个方法