首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>.NET2.0>asp.net不使用服务器控件的情况下实现文件上传
asp.net不使用服务器控件的情况下实现文件上传
来源: 发布时间:2008-09-25 发布人: 浏览: 人次   字体: [ ]  

      虽然.Net的服务器控件极大的提供了编程的方便,但是每一个服务器控件都是需要在服务器端创建相应的对象,是以牺牲服务器端的资源为代价的,因此过多的使用服务器控件是会极大的影响程序的性能。
 
  那么没有了服务器控件,没有了runat="server"以后在.Net中又该怎么实现文件上传呢,难不成又回到ASP的老路上去。其实用不着,对于.Net来说即便没有了服务器控件,用.Net提供的HttpRequest对象和HttpFileCollection对象这个问题还是很简单的,下面是多文件上传的具体代码:
 
Save.aspx文件,用来接收Index.html提交的数据
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>asp.net不使用服务器控件的文件上传--IT知道网(itwis.com)</title>
</head>
<body>
<%
'取客户端上传的全部文件的集合
 Dim Files As HttpFileCollection
 Files = Request.Files
    
'取当前日期时间
dim currentdate as Date,strcurrentdate as string
currentdate=now
strcurrentdate=currentdate.Millisecond.toString()
strcurrentdate="000" & strcurrentdate
strcurrentdate=strcurrentdate.Substring(strcurrentdate.length()-3)
strcurrentdate=currentdate.toString("yyyyMMddHHmmss") & strcurrentdate
    
'遍历客户端上传的全部文件
dim loop1 as Integer=0
 for loop1 = 0 To (Files.count-1)
    
dim FileName as string  '文件名
dim FileType as string  '文件类型
dim FileSize as long    '文件大小
            
FileName=Files.item(loop1).FileName
FileSize=Files.item(loop1).ContentLength
FileType=Files.item(loop1).ContentType
        
if FileSize<>0 then '客户端上传了文件
FileName=Server.MapPath("~/") & strcurrentdate & "_" & (loop1+1) & FileName.Substring(FileName.lastindexof("."))

Files.item(loop1).SaveAs(FileName)
end if
        
response.write(Filename & "<br>")               
Next loop1
%>
</body>
</html>

index.html文件,用来提交表单

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<form action="save.aspx" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <div><input type="file" name="file1" /></div>
    <div><input type="file" name="file2" /></div>
    <div><input type="submit" name="Submit" value="提交" /></div>
</form>
</body>
</html>

     虽然.Net提供了很方便的方法来实现文件的上传,但是当Form表单提交的数据超过maxRequestLength(.Net默认为4M)时问题出现了,一切看起来并不像想象中的那么美好,当Form表单提交的数据超过maxRequestLength时,出现了“The page cannot be displayed”的错误页面。
 
      注意:是整个Form表单超过maxRequestLength,不是上传文件的大小超过maxRequestLength,网上很多资料都说是文件超过maxRequestLength,这都是网上那些不求甚解的人以讹传讹的结果,实际上在maxRequestLength值固定的情况下,上传文件的大小取决于Form中其他表单对象提交的数据量,其他表单提交的数据越多则能上传的文件越小,当Form中只有File这一个表单对象时,能上传的文件的大小也无法达到maxRequestLength,差值最少也在150字节以上。
 
     那么怎么样才能在上传的文件超过maxRequestLength时不出现错误,或者在上传文件超过maxRequestLength时出现的不是“The page cannot be displayed”错误页面,而是出现更友好的错误信息提示界面呢,下面我们将继续讨论。


相 关 文 章   发布商链接
·包含32种常见的用户输入验证的用户控...
·如何在GridView中动态显示数据库中图...
·如何在GridView控件中为按钮添加相应...
·详解在asp.net1和2中发送电子邮件的...
·实例讲解asp.net备份和恢复sql数据库...
·实例讲解在.net2.0中对config文件的...
·如何让GridView控件支持分页的自动编...
·.net如何将ListViewItem转换为ListVi...
·如何在asp.net中获取GridView隐藏列...
·gridview控件嵌套gridview控件的方法...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解在.net2.0中对config
·包含32种常见的用户输入验证...
·如何更改单个aspx页面的编码...
·实例讲解如何设置gridview的...
·asp.NET 2.0中引发CSS失效问...
·GridView通过模板列实现第一...
·VS2005利用TreeView控件和递...
·DataView对象获取数据行相应...
·GridView中固定列的两种方法
·为GridView控件添加分页导航...
·Net2.0中使用母版页及其母版...
·实例解决GridView中弹出对话...
·Gridview控件字段内容过长的...
·图解ASP.NET下AJAX安装(VS20...
·重写GridView实现单击行变色...
热 门 文 章
·asp.net(C#)弹出窗口返回值并...
·VS2005利用Excel组件操作Exce...
·AJAX实现无刷新适时显示gridV...
·gridview表头固定并实现打印...
·Js获取radiobuttonlist选中值...
·gridview绑定数据显示的各种...
·ASP.NET中“无法加载 DLL 找...
·asp.net文件下载防止乱码出现...
·asp.net2.0回发或回调参数无...
·实现gridview内容打印功能的...
·ASP.NET多个用户控件回车提交...
·Asp.net页面传递参数的几种方...
·图解ASP.NET下AJAX安装(VS20...
·实例解决GridView中弹出对话...
·如何在asp.net中获取GridView...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .