高级控件(一)
1、文件上传
(1)上传的概念:Upload,数据流的方向是从客户端到服务器,本质上是请求的一种形式。
(2) FileUpload控件的主要功能是向指定的目录上传文件。该控件包括一个文本框和一个浏览按钮。用户可以在文本框中输入完整的文件路径,或通过按钮浏览并选择需要上传的文件。FileUpload的FileName属性用于获取选择的文件路径及文件名。
(3)FileUpload控件仅用于选择文件,不会自动上传文件(需另外放置一个按钮编写代码实现上传),而必须设置相关的事件处理程序,然后在程序中实现文件上传。FileUpload的SaveAs()方法用于真正进行上传操作。
(4)上传文件过程本身并无难度,实际应用时,更多需要考虑的是:
a) 如何简单、准确、高效地去除文件路径,获取文件名、扩展名的问题
b) 如何避免多个用户多次上传的文件重名相互覆盖的问题
c) 如何能够在后续的下载过程中还原文件名的问题
d) 如何避免文件过大的问题
(5)如何避免服务器上存储的文件过多导致服务器效率降低的问题?
(不要在服务器上使用一个文件夹存储成千上万个文件,可以使用子文件夹按某种规律——时间或类型——对文件进行分别存储)
(6)上传是一种请求行为,有数据量大小的限制,若上传文件>4MB,则需要修改配置文件配置节的maxRequestLength属性为需要的字节数。
(7)System.IO命名空间中提供了一些类,可以帮助我们更方便地进行获取文件名、后缀名、生成路径等操作。加以利用,可以大幅度降低编码复杂度。
(8)上传文件的同时,请使用数据库等序列化手段存储上传时的一些信息,包括:原始文件名、后缀名、上传的路径、上传后的文件名、文件大小、文件所有者登录信息等,以备后续使用。
2、文件下载
(1)Response:响应对象,用于描述从服务器向客户端发送的数据。
(2)ContentType:内容类型,用于定义服务器返回的内容或文件的类型和网页的编码,决定客户端以何种方式接收、什么编码读取这个文件的内容。因为默认情况下,基于HTTP超文本传输协议的网络通讯的内容只能是“文本”的。通俗地说,是服务器用来通知浏览器注意,下面发送的内容是某种特定格式的。可以在百度中检索“Http ContentType 对照表”来查询不同类型的响应的设置方式。
高级控件(二)
一、站点地图与SiteMapPath控件
(1) 在ASP.NET中,站点地图是以web.sitemap命名的文件,且需要存储于站点的根目录下。
(2)web.sitemap文件内容是以XML所描述的树状结构文件,其中包括了站点的结构信息。ASP.NET的导航控件的网站导航信息和超链接的数据均由web.sitemap文件提供。
(3)SiteMapPath:站点地图路径控件。该控件的作用就是用来显示当前页面在站点地图中的位置(路径)信息。
二、ASP.Net中的站点地图文件,必须有:
a) 特定的文件名:web.sitemap
b) 特定的文件结构:
1) 使用作为根元素;
2) 有且仅有一个子元素:元素;
3) 元素可以嵌套包含多个其它的元素作为其子元素。值得注意的是:最顶层的只能有一个,不能有兄弟元素。
4) 元素的url属性是“非空”且“唯一”的。
c) 特定的存储位置:站点根目录
2、SiteMapPath控件最简单的使用方法就是直接在页面上放一个即可。其原理是该控件自动到站点根目录去寻找web.sitemap文件,并按照特定的结构来解析站点地图结构,最后根据当前所在页面的位置信息,将“面包屑”显示在页面上。
3、SiteMapPath提供了PathSeparator属性和PathSeparatorTemplate模板,允许开发者自定义分隔符。
三、TreeView控件
1、TreeView控件使用DataSourceID属性与SiteMapDataSource控件进行绑定。
2、站点地图使用TreeView控件或者Menu进行绑定显示后,通常还需配合母版页一起使用,从而达到最大化地重用站点地图。
3、SiteMapDataSource固定地从web.sitemap文件中读取站点地图信息。
4、XmlDataSource可以替代SiteMapDataSource,因为XmlDataSource可以读取任何结构的XML文件,代价是其使用相对较难掌握,因为使用者必须事先掌握XML的相关知识,并提前设计好要读取的XML文件的结构。
网友评论