一般使用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
)就可以你可以百度下这个方法