老板催着要交工,这边有点儿忙不过来了。要用JS验证:<asp:FileUpload ID="FileUpload1" runat="server" onchange="a(this)" />
这个 a 方法,该怎么写,才能判断 FileUpload1 上传图片的大小?我百度了很久了,没有找到想要的能用的,谢谢!
这个 a 方法,该怎么写,才能判断 FileUpload1 上传图片的大小?我百度了很久了,没有找到想要的能用的,谢谢!
*功能:校验图片格式及大小
*格式仅限jpeg、gif、jpg文件;大小不得超过setSize(单位是Kb),默认限制为100Kb。
*/
var imgSize=1024*100;
var img=null;
function checkImg(obj,setSize){
if(setSize==null||setSize==''){
}else{
imgSize=1024*setSize;
}
var file = obj;
if(file.value != ""){
//检测类型
var val = file.value;
if(/^.*?\.(jpg|jpeg|gif|JPG|JPEG|GIF)$/.test(val)){
}else{
alert("只能上传jpg,jpeg或gif格式的图片!");
return false;
}
//检测大小:
if(img) img.removeNode(true);
var img = new Image();
var theSize=0;
img.onload=function(){
theSize = img.fileSize;
}
img.src = val;
if(theSize<=0){
alert("正在验证图片,请稍候……");
return false ;
}
if(theSize>imgSize){
alert("当前图片大小" + Math.round(theSize/1024) + "KB, 超出最大限制" + Math.round(imgSize / 1024) + "KB !");
return false ;
}
}
return true ;
}本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mzh_2008beijing/archive/2010/01/04/5128057.aspx
<httpRuntime executionTimeout="300" maxRequestLength="204800" useFullyQualifiedRedirectUrl="false"/>
<script>
function a(obj) {
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile(obj.value); alert("File last modified: " + f1.Size); } </script>
function a(obj) {
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile(obj.value); alert("File last modified: " + f1.Size); } </script>
我这个刚刚测试了,可以的呀。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>
<script type="text/javascript">
var img_user=null;
function notimg()
{
alert("您插入的不是图片,请重新选择插入");
}
function isimg()
{
if(img_user.fileSize/1024)
{
alert("您上传的图片大小为:"+img_user.fileSize+",请重新上传照片!");
}
}
function ChkFileSize(obj) {
var b = false;
var _size = 0;
if (obj) {
//ie
if (window.navigator.userAgent.indexOf("MSIE") >= 1)
{
if(img_user)img_user.removeNode(true);
img_user=document.createElement("img");
img_user.attachEvent("onreadystatechange",isimg);
img_user.attachEvent("onerror",notimg);
img_user.src=obj.value;
}
//firefox
else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
if (obj.files) {
alert(obj.files.item(0).fileSize);
}
else {
b = true
}
}
}
return b;
}
</script>
</head>
<body>
<input id="File1" type="file" onchange="javascript:ChkFileSize(this)" />
</body>
</html>
function a(i) {
var f = new ActiveXObject("Scripting.FileSystemObject");
var f1 = f.GetFile(i.value);
alert(f1.Size);
}
后台判断Boolean fileOK = false;
//设置服务器中保存文件的路径
String path = Server.MapPath("~/UploadFiles/");
//判断是否选择了文件
if (FileUpload1.HasFile)
{
//返回文件的扩展名
String fileExtension =
System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
//设置限定的文件类型
String[] allowedExtensions =
{ ".txt", ".doc", ".xml", ".jpg" };
//判断用户选择的文件类型是否受限
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[i])
{
fileOK = true;
}
}
}
//如果文件大于1M,则不允许上传
if (FileUpload1.PostedFile.ContentLength > 1024000)
{
fileOK = false;
}
//如果文件类型符合
if (fileOK)
{
try
{
// 将文件保存到指定的文件夹下
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
}
catch
{
//
}
}
参见http://dotnet.aspx.cc/article/facbb9a7-c9c6-46ad-9591-5ba34ae27e58/read.aspx
在服务器端用PostedFile.ContentLength 判断,大雨指定值的话,直接终止上传。
http://dotnet.aspx.cc/file/Catch-maxRequestLength-Exceptions-When-Uploading-File-in-ASPNET.aspx也可以上传后删除
http://dotnet.aspx.cc/article/294cb4ec-1872-4d81-bde3-f9533373c147/read.aspx