ASP.NET上传文件前如何先判断文件大小?

xxx13 2010-07-30 11:34:32
用的是ASP.NET自带的控件FileUpload,请问能实现上传前先判断文件的大小、文件名等信息吗?不是用UploadFile.PostedFile.ContentLength、UploadFile.PostedFile.FileName来判断。
...全文
1846 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
回头是岸 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zlj002 的回复:]
引用 5 楼 xxx13 的回复:
引用 4 楼 zming 的回复:
上面写错一个字符。


HTML code

<script type="text/javascript">
function chkSize(strFileName)
{
var maxSize = 100; // 文件大小,单位KB
var objStream = new ActiveXObject(……
[/Quote]

除了这个还有其它办法用js在前端判断上传文件大小吗?
StillMiss 2010-10-28
  • 打赏
  • 举报
回复
学习一下、、、
a4626219 2010-08-27
  • 打赏
  • 举报
回复
寻求N种解决方案以后。。 我还是用了SWFupload。。。!
a4626219 2010-08-25
  • 打赏
  • 举报
回复
同样遇到此问题。。。 关注,!
wuyq11 2010-07-30
  • 打赏
  • 举报
回复
<httpRuntime maxRequestLength="51200" executionTimeout="600"/> 
Request.Files[0].ContentLength
FileUpload1.PostedFile.ContentLength
否则很难判断
Adechen 2010-07-30
  • 打赏
  • 举报
回复
FileUpload2.PostedFile.ContentLength
lorinzhang 2010-07-30
  • 打赏
  • 举报
回复
还要工具->internet选项->\"安全\"选项卡->自定义级别,\n"+
"打开\"安全设置\"对话框,把\"对没有标记为安全的\n"+
"ActiveX控件进行初始化和脚本运行\",改为\"启动\"
lorinzhang 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xxx13 的回复:]
引用 4 楼 zming 的回复:
上面写错一个字符。


HTML code

<script type="text/javascript">
function chkSize(strFileName)
{
var maxSize = 100; // 文件大小,单位KB
var objStream = new ActiveXObject("ADODB.Stream");
o……
[/Quote]
这个错误是ie的安全设置造成的,internet选项,安全,自定义级别,找到"将文件上载到服务器时包含本地目录路径"启用
zhang_13245768 2010-07-30
  • 打赏
  • 举报
回复

HttpFileCollection files = HttpContext.Current.Request.Files;
for (int i = 0; i < files.Count; i++)
{
string[] IDs = files.AllKeys;

HttpPostedFile postedFile = files[i];
string fileName;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
int filesize = postedFile.ContentLength; //获得文件大小
}
随风落梦 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 aluogang 的回复:]
HttpPostedFileBase file_f = Request.Files[0];
HttpPostedFileBase file_s = Request.Files[1];
HttpPostedFileBase file_b = Request.Files[2];

string fileName_f = file_f.FileName;
string file……
[/Quote]
up
file_f.ContentLength 这个就是获取文件大小
onlylikews 2010-07-30
  • 打赏
  • 举报
回复
把网站添加到信任站点
段传涛 2010-07-30
  • 打赏
  • 举报
回复
FileUpload2.PostedFile.ContentLength
段传涛 2010-07-30
  • 打赏
  • 举报
回复
比较简单的方法
protected void Button1_Click(object sender, EventArgs e)
{
//相關用戶相關文件夾

string filepath = Server.MapPath(getfilepath);
try
{
if (FileUpload2.PostedFile.ContentLength > 0 && FileUpload2.PostedFile.ContentLength < 22000000)
{
FileUpload2.SaveAs(filepath + "\\" + FileUpload2.FileName);
}
else
{
Response.Write("<script>alert('檢查您選擇的文件是否為空或者超過20MB');</script>");
}
}
catch { Response.Write("<script>alert('檢查您選擇的文件');</script>"); }
Response.Redirect("Default.aspx");
}
xxx13 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zming 的回复:]
上面写错一个字符。


HTML code

<script type="text/javascript">
function chkSize(strFileName)
{
var maxSize = 100; // 文件大小,单位KB
var objStream = new ActiveXObject("ADODB.Stream");
objStrea……
[/Quote]

JavaScript运行错误:Automation 服务器不能创建对象。

这个错误如何解决?
zming 2010-07-30
  • 打赏
  • 举报
回复
上面写错一个字符。


<script type="text/javascript">
function chkSize(strFileName)
{
var maxSize = 100; // 文件大小,单位KB
var objStream = new ActiveXObject("ADODB.Stream");
objStream.Type = 1;
objStream.Open();
objStream.LoadFromFile(strFileName);

if(Math.round(objStream.Size/1024,2)>maxSize)
{
alert ("文件超限");
document.form1.reset();
return false;
}
}
</script>

<form name="form1" action="#" method="post">
<input type="file" name="Upfile" onchange="chkSize(this.value)">
</form>

zming 2010-07-30
  • 打赏
  • 举报
回复
使用 Javascript ,调用客户端 ActiveX 对象


<script type="text/javascript">
function chkSize(strFileName)
{
var maxSize = 100; // 文件大小,单位KB
var objStream = new ActiveXObject("ADODB.Stream");
objStream.Type = 1;
objStream.Open();
objStream.LoadFromFile(strFileName);

if(Math.round(objStream.Size/1024,2)>maxSize)
{
alert ("文件超限");
document.form1.reset();
return false;
}
}
</script>

<form name="form1" action="#" method="post">
<input type="file" name="Upfile" onchange="chksize(this.value)">
</form>
aluogang 2010-07-30
  • 打赏
  • 举报
回复
else
{
file_f.SaveAs(System.Web.HttpContext.Current.Request.MapPath("~/uploadPic/model/" + strFileName_f));
file_s.SaveAs(System.Web.HttpContext.Current.Request.MapPath("~/uploadPic/model/" + strFileName_s));
file_b.SaveAs(System.Web.HttpContext.Current.Request.MapPath("~/uploadPic/model/" + strFileName_b));
}
aluogang 2010-07-30
  • 打赏
  • 举报
回复
HttpPostedFileBase file_f = Request.Files[0];
HttpPostedFileBase file_s = Request.Files[1];
HttpPostedFileBase file_b = Request.Files[2];

string fileName_f = file_f.FileName;
string fileName_s = file_s.FileName;
string fileName_b = file_b.FileName;

string fileType_f = fileName_f.Substring(fileName_f.LastIndexOf(".")).ToLower();
string fileType_s = fileName_s.Substring(fileName_s.LastIndexOf(".")).ToLower();
string fileType_b = fileName_b.Substring(fileName_b.LastIndexOf(".")).ToLower();

if (file_f.ContentLength == 0 || file_s.ContentLength == 0 || file_b.ContentLength == 0)
{
message = "错误:请上传图片!";
}
else if (file_f.ContentLength > 1024 * 1024 || file_s.ContentLength > 1024 * 1024 || file_b.ContentLength > 1024 * 1024)
{
message = "错误:图片大小不能超过1M!";
}
else if (fileType_f != ".png" || fileType_s != ".png" || fileType_b != ".png")
{
message = "错误:图片上传格式不正确,请上传.png格式图片!";
}
OOOqqqOOO 2010-07-30
  • 打赏
  • 举报
回复
这IE就可以用
idtugv 2010-07-30
  • 打赏
  • 举报
回复
前几天我也为这个问题纠结了,网上找,提问,都没好办法,javascript写吧,有的IE能通过,有的不行。
后台判断的,都是传到服务器后才判断,文件大了,不在web.config修改,超过默认的4M上传直接报错。修改了吧,文件大了,等半天,传到服务器后再判断大小,
不好弄啊,期待有好的答案
加载更多回复(15)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧