aspnet上传文件大小
1. 如何获得file控件的文本框内的值
FileUpload控件
FileUpload 控件显示一个文本框控件和一个浏览按钮,使用户可以选择客户端上的文件并将它上载到 Web 服务器。用户通过在控件的文本框中输入本地计算机上文件的完整路径(例如,C:\MyFiles\TestFile.txt)来指定要上载的文件。用户也可以通过单击“浏览”按钮,然后在“选择文件”对话框中定位文件来选择文件。
用户选择要上载的文件后,FileUpload 控件不会自动将该文件保存到服务器。您必须显式提供一个控件或机制,使用户能提交指定的文件。例如,可以提供一个按钮,用户单击它即可上载文件。为保存指定文件所写的代码应调用 SaveAs 方法,该方法将文件内容保存到服务器上的指定路径。通常,在引发回发到服务器的事件的事件处理方法中调用 SaveAs 方法。
在文件上传的过程中,文件数据作为页面请求的一部分,上传并缓存到服务器的内存中,然后再写入服务器的物理硬盘中。
有三个方面需要注意:
1.确认是否包含文件
在调用 SaveAs 方法将文件保存到服务器之前,使用 HasFile 属性来验证 FileUpload 控件确实包含文件。若 HasFile 返回 true,则调用 SaveAs 方法。如果它返回 false,则向用户显示消息,指示控件不包含文件。不要通过检查PostedFile 属性来确定要上载的文件是否存在,因为默认情况下该属性包含 0 字节。因此,即使 FileUpload 控件为空,PostedFile 属性仍返回一个非空值。
2.文件上传大小限制
默认情况下,上传文件大小限制为 4096 KB (4 MB)。可以通过设置 httpRuntime 元素的 maxRequestLength 属性来允许上载更大的文件。若要增加整个应用程序所允许的最大文件大小,请设置 Web.config 文件中的 maxRequestLength 属性。若要增加指定页所允许的最大文件大小,请设置 Web.config 中 location 元素内的 maxRequestLength 属性。
上载较大文件时,用户也可能接收到以下错误信息:
aspnet_wp.exe (PID: 1520) was recycled because memory consumption exceeded 460 MB (60 percent of available RAM).
以上信息说明,上传文件的大小不能超过服务器内存大小的60%。这里的60%是Web。config文件的默认配置,是<processModel>配置节中的 memoryLimit 属性默认值。虽然可以修改,但是如果上传文件越大,成功几率越小,不建议使用。
3.上传文件夹的写入权限
应用程序可以通过两种方式获得写访问权限。您可以将要保存上载文件的目录的写访问权限显式授予运行应用程序所使用的帐户。您也可以提高为 ASP.NET 应用程序授予的信任级别。若要使应用程序获得执行目录的写访问权限,必须将 AspNetHostingPermission 对象授予应用程序并将其信任级别设置为 AspNetHostingPermissionLevel.Medium 值。提高信任级别可提高应用程序对服务器资源的访问权限。请注意,该方法并不安全,因为如果怀有恶意的用户控制了应用程序,他(她)也能以更高的信任级别运行应用程序。最好的做法就是在仅具有运行该应用程序所需的最低特权的用户上下文中运行 ASP.NET 应用程序。
FileUpload控件的常用属性:
属性
数据类型
说明
FileBytes
byte[]
获取上传文件的字节数组
FileContent
Stream
获取指定上传文件的Stream对象
FileName
String
获取上传文件在客户端的文件名称
HasFile
Bool
获取一个布尔值,用于表示FileUpload控件是否已经包含一个文件
PostedFile
HttpPostedFile
获取一个与上传文件相关的HttpPostedFile对象,使用该对象可以获取上传文件的相关属性
可以通过3种方法访问上传文件:
1.通过FileBytes属性。该属性将上传文件数据置于字节数组中,遍历该数组,则能够以字节方式了解上传文件的内容。
2.通过FileContent属性。调用该属性可以获得一个指向上传文件的Stream对象。可以使用该属性读取上传文件数据,并使用FileBytes属性显示文件内容。
3.通过PostedFile属性。调用该属性可以获得一个与上传文件相关的HttpPostedFile对象,使用该对象可以获得与上传文件相关的信息。例如,调用HttpPostedFile对象的ContentLength,可以获得上传文件大小;调用HttpPostedFile对象的ContentType属性,可以获得上传文件的类型;调用HttpPostedFile对象的FileName属性,可以获得上传文件在客户端的完整路径(调用FileUpload控件的FileName属性,仅能获得文件名)。
Show一个最基本的文件上传示例:
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="">
<head runat="server">
<title>示例8-3</title>
<link id="InstanceStyle" href="StyleSheet.css" type="text/css" rel="stylesheet" />
</head>
<body>
<form id="Form1" runat="server">
<div>
<fieldset style="width: 290px">
<legend class="mainTitle">FileUpload控件典型应用</legend>
<br />
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="BtnUpload" runat="server" Text="上传" OnClick="BtnUpload_Click" />
<hr />
<asp:Label ID="LabMessage1" runat="server" ForeColor="red" /><br />
<asp:Label ID="LabMessage2" runat="server" />
</fieldset>
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void BtnUpload_Click(object sender, EventArgs e)
{
bool fileOK = false;
string path = Server.MapPath("~/Temp/");
if (FileUpload1.HasFile)
{
String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
String[] allowedExtensions = ;
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[i])
{
fileOK = true;
}
}
}
if (fileOK)
{
try
{
FileUpload1.SaveAs(path + FileUpload1.FileName);
LabMessage1.Text = "文件上传成功.";
LabMessage2.Text = "<b>原文件路径:</b>" + FileUpload1.PostedFile.FileName + "<br />" +
"<b>文件大小:</b>" + FileUpload1.PostedFile.ContentLength + "字节<br />" +
"<b>文件类型:</b>" + FileUpload1.PostedFile.ContentType + "<br />";
}
catch (Exception ex)
{
LabMessage1.Text = "文件上传不成功.";
}
}
else
{
LabMessage1.Text = "只能够上传图片文件.";
}
}
}
另外,虚机团上产品团购,超级便宜
2. ASP.NET 2.0高级控件之FileUpload控件
应用程序中经常需要允许用户把文件上传到web服务器 尽管在ASP NET X也可以完成该功能 但在ASP NET 中使用FileUpload控件会更简单 该控件让用户更容易地浏览和选择用于上传的文件 它包含一个浏览按钮和用于输入文件名的文本框 只要用户在文本框中输入了完全限定的文件名 无论是直接输入或通过浏览按钮选择 都可以调用FileUpload的SaveAs方法保存到磁盘上差歼尘 除了从WebControl类继承的标准成员 FileUpload控件还公开了几个只读的属性 在表 和表 列出 表 FileUpload控件属性 名 称 类型 读 写 说 明 FileContent Stream × 返回一个指向上传文件的流对象 FileName string × 返回要上传文件的名称 不包含路径信息 HasFile Boolean × 如虚禅果是true 则表示该控件有文件要上传 PostedFile HttpPostedFile × 返回已经上传文件的引用 表 列出了它所公开的只读属性 表 HttpPostedFile属性 名 称 类 型 读 写 说 明 ContentLength integer × 返回上传文件的按字节表示的文改孙件大小 ContentType string × 返回上传文件的MIME内容类型 FileName string × 返回文件在客户端的完全限定名 InputStream Stream × 返回一个指向上传文件的流对象 所有这些属性将在下面的示例中说明 为了查看FileUpload控件在实际中的运用 创建一个FileUploadDemo网站 在页面上添加一个FileUpload控件 然后 添加两个ASP NET按钮 Text属性分别设置为Save和Display ID分别设置为btnSave和btnDisplay 增加两个Label控件 并分别将ID设置为lblMesage和lblDisplay 用<br/>HTML元素分隔这些控件 切换到设计视图 通过双击每个按钮 为它们在代码隐藏文件中创建具有默认名称的Click事件处理程序 完成后的内容文件类似于示例 示例 FileUploadDemo网站的default aspx <%@ Page Language= C# AutoEventWireup= true CodeFile= Default aspx cs Inherits= _Default %><!DOCTYPE PUBLIC //W C//DTD XHTML //EN >< xmlns= ><head runat= server ><title>FileUpload Control</title></head><body><form id= form runat= server ><div><h >FileUpload Control</h ><asp:FileUpload ID= FileUpload runat= server /><br /><asp:Button ID= btnSave runat= server Text= Save OnClick= btnSave_Click /><asp:Button ID= btnDisplay runat= server Text= Display OnClick= btnDisplay_Click /><br /><br /><asp:Label ID= lblMessage runat= server /><asp:Label ID= lblDisplay runat= server /></div></form></body></>在代码隐藏文件中 添加示例 中高亮显示的代码 非高亮显示的代码由VS 自动创建
示例 FileUploadDemo网站的Default aspx cs
using System;using System Data;using System Configuration;using System Web;using System Web Security;using System Web UI;using System Web UI WebControls;using System Web UI WebControls WebParts;using System Web UI HtmlControls;using System IO; // 使用Stream必需public partial class _Default : System Web UI Page {protected void Page_Load(object sender EventArgs e){}protected void btnSave_Click(object sender EventArgs e){string str = ;if (FileUpload HasFile){try{str += Uploading file: + FileUpload FileName;// 保存文件FileUpload SaveAs( c:\websites\uploads\ + FileUpload FileName);// 显示文件信息str += <br/>Saved As: + FileUpload PostedFile FileName;str += <br/>File Type: + FileUpload PostedFile ContentType;str += <br/>File Length (bytes): + FileUpload PostedFile ContentLength;str += <br/>PostedFile File Name: + FileUpload PostedFile FileName;}catch (Exception ex){str += <br/><b>Error</b><br/>Unable to save c:\websites\uploads\ + FileUpload FileName + <br/> + ex Message;}}else{str = No file uploaded ;}lblMessage Text = str;lblDisplay Text = ;}protected void btnDisplay_Click(object sender EventArgs e){string str = <u>File: + FileUpload FileName + </u><br/> ; if (FileUpload HasFile){try{Stream stream = FileUpload FileContent;StreamReader reader = new StreamReader(stream);string strLine = ;do{strLine = reader ReadLine( );str += strLine;} while (strLine != null);}catch (Exception ex){str += <br/><b>Error</b><br/>Unable to display + FileUpload FileName + <br/> + ex Message;}}else{str = No file uploaded ;}lblDisplay Text = str;lblMessage Text = ;}}高亮显示的using声明对于不使用完全限定命名空间 而使用Stream对象是必须的 在Save按钮的btnSave_Click事件处理程序中 FileUpload控件的HasFile属性用于检测文本框中是否输入了有效的完全限定文件名 如果文本框为空或输入的名称无效 将不会通过检测 并且lblMessage将显示 No file upladed 假定上传了一个有效文件 那么将执行try代码块中的代码 关键语句是调用File Upload控件的SaveAs方法 该方法使用硬编码路径和FileName属性传递一个完全限定的文件名 该语句可能会由于各种原因而失败 包括磁盘空间不足 无效的路径或安全问题(稍后会有更详细的说明) 如果SaveAs方法失败 则执行catch代码块 在lblMessage中显示一个错误信息 包括该异常的Message属性ex Message 如果SaveAs方法执行成功 关于上传文件的多个信息将显示在lblMessage中 这些信息通过FileUpload PostedFile(类型为HttpPostedFile)中的属性获取 Display按钮的Click事件处理程序与前面的类似 只不过它不是显示文件信息 而是显示文件内容 它通过使用FileContent属性获取表现为Stream对象的上传文件的内容 然后这个Stream对象被用于实例化一个StreamReader对象 StreamReader的Read Line方法逐行的遍历文件 然后把合并后的字符串显示在lblDisplay中 当在讨论从客户端上传文件到web服务器时 安全是非常让人关注的 须注意两点 首先 使用这种方式会公开web服务器 从而会有非常大的安全漏洞 为此要特别细心 因为这样不仅可以上传病毒 木马和其他恶意软件 还会存在客户端浏览web服务器目录结构的危险 因此 应该使用硬编码目标目录 至少严格限定在哪里保存上传的文件 另外 要注意的一点是 允许在磁盘写文件所必需的权限 在开发web应用程序时 一般情况下 开发机器同时也是web服务器 特别是使用VS 默认的开发模式 在该模式下使用的是内置的web服务器 并且不通过IIS访问网站而是由文件系统访问网站 这样 永远也不会有权限问题 然而 当网站部署到产品服务器上 且该网站通过IIS和虚拟目录来访问时 就会出现问题 这是因为运行ASP NET的账户必须拥有对用于保存上传文件的目录的写权限 在Windows /XP中 账户的名称是ASPNET 在Windows Server 中 写权限必须分配给IIS_WPG账户组 利用FileUpload控件并结合良好的安全防护 用户可以把自己的文件传送到网站 以丰富网站功能 lishixin/Article/program/net/201311/13538
3. 求.net面试题
下面有关用户控件与aspx页面区别说法错误的是(B)
aa// 用户控件不能再包含<HTML><BODY><FORM>标记,而aspx页面可以包含
bb// 用户控件不能触发服务器端的事件,只是一种外观重用方式,而aspx页面可以
cc// 用户控件继承自System.Web.UI.UserControl,而aspx页面继承自System.Web.UI.Page
dd// 用户控件可以包含其它用户控件,但是不能直接访问,必须包含在某个aspx页面中才可以访问,而aspx页面是可以直接访问的
想在在aspx页面使用用户控件,则aspx页面开始部分必须添加下面哪个页面指令A
aa// <%@ Page %>
bb// <%@ Master %>
cc// <%@ Control %>
dd// <%@ Register %>
根据你的理解,你认为第三控件与用户控件的主要区别是A
aa// 第三方控件是编译后的代码,后缀为dll,只要应用程序引用进来,就可以使用,而用户控件是页面文件,属于非编译代码,只限于在当前应用程序中使用
bb// 用户控件比第三方控件更灵活,可以在应用程序中多个地方使用
cc// 用户控件出现在工具箱中,而第三方控件不会出现在工具箱中
dd// 用户控件比第三方控件的执行效率要高一些
下面关于HttpHandler与HttpMole说法正确的是C
aa// 一个Http请求中可以经历多个HttpMole和一个HttpHandler
bb// 一个Http请求中可以经历多个HttpHandler和一个HttpMole
cc// HttpMole是一个Http请求的最终处理者
dd// HttpHandler通常做一些停止数据向客户端输出的操作
在aSPNET中,关于HttpHandler说法不正确的是:(D)
aa// 通常文件后缀名为ashx
bb// 它是一个Http请求处理的最终点
cc// 它实现了IHttpHandler
dd// 当它的IsReusable属性为false时,表示只能使用一次
下面哪个选项不能在web.config文件中配置的(C)
aa// 连接字符串
bb// 身份验证
cc// 网站导航
dd// 程序出现错误时,定向到的错误提示页面
aSPNET支持三种验证方式,不属于其中的是(B)
aa// passport
bb// SqlServer身份
cc// Windows
dd// Forms
在网站某个目录的web.config配置文件中,有一段关于该目录授权的代码,经过分析,你认为正确的答案是:B
<authentication>
<deny user="?" /> 拒绝所有匿名用户
<allow users="xiaozhang" /> 容许xiazhang
<deny roles="*"> 拒绝所有用户
</authentication>
aa// 所有用户都可以访问该网站目录,除xiaozhang以外
bb// 所有用户都不能访问该网站目录,除xiaozhang以外
cc// 匿名用户和xiaozhang都不能访问该网站目录
dd// 所有角色和用户都不能访问该网站目录
已知在网站的根目录下有一个web.config文件,有如下关于验证的代码,正确说法的是B
<authorization mode="Forms">
<forms name="userLogin" loginUrl="~/login.aspx" timeout="20">
</forms>
</authorization>
aa// loginUrl的作用是,当用户登录不成功时,转向login.aspx页面
bb// loginUrl的作用是,当用户进入网站如果未登录,就转向login.aspx页面
cc// timeout是超过20分钟不登录,就退出网站
dd// timeout的作用是当20分钟后,用户还没有登录,就转向login.aspx页面
下列关于部署的说法,正确的是(a d)
aa// 部署就是将站点文件复制到相关web目录中
bb// 应该在本地站点将内容处理好,比如数据库连接字符串设置好并加密,然后直接复制到站点到远程服务器相关目录即可
cc// 发布预编译站点,如果将来需要更新某个页面,最好不要选择使用”使用固定命名和单页程序集”
dd// 发布预编译站点就是将站点所有文件都编译到dll中
下面(C)不属于导航控件
aa// Menu
bb// SiteMapPath
cc// View
dd// SiteMapDataSource
在asp.net中的母版中的内容页中能包含的HTML元素是(D)
aa// <html>
bb// <head>
cc// <body>
dd// <script>
如果希望使用TreeView控件显示时默认全部展开应设置(D)属性
aa// ExpandDepth
bb// ExpandImageToolTip
cc// ExpandImageUrl
dd// Expand
在SiteMapPath控件中,要设置导航路径中分隔符应设置(B)属性
aa// PathDirection
bb// PathSeparator
cc// PathSeparatorStyle
dd// Provider
下列关于ContentPlaceHolder控件说法错误的是(C)ContentPlaceHolderMain
aa// ContentPlaceHolder 控件为母版页中的内容定义一个相对区域
bb// 母版页还包括一个或多个 ContentPlaceHolder 控件
cc// ContentPlaceHolder 控件必须包含在内容页中
dd// Content 控件使用其 ContentPlaceHolderID 属性与 ContentPlaceHolder 关联.
下列(c)模板不属于Repeater控件
aa// ItemTemplate
bb// alternatingItemTemplate
cc// SelectedItemTamplate
dd// SeparatorTemplate
设置(a)属性将会页面显示DataList控件时调用EditItemTemplate模板
aa// EditItemIndex
bb// EditIndex
cc// SelectedItemIndex
dd// ModifyItemIndex
如果在DataList中实现分页一般(AB)(选择二项)
aa// 使用Sql语句
bb// 使用PagedDataSource对象进行分页
cc// 设置CurrentPageIndex属性
dd// 设置DataList的PageIndex属性
DataList中的交替行模板是(B)
aa// ItemTemplate
bb// alternatingItemTemplate
cc// SelectedItemTamplate
dd// SeparatorTemplate
下面关于DataList说法错误的是(C)
aa// DataList没有内置分页功能
bb// DataList具有SelectedItemTamplate模板
cc// DataList不能使用ObjectDataSource控件进行绑定数据 可以使用ObjectDataSource控件进行绑定数据
dd// DataList比Repeater控件多了二个模板 DataList有编辑模板和选择模板
在一个aSPX页面的Page_Load事件中,编写了如下代码,则执行该页面后,将在页面中输出(a)。(选择一项)
private void Page_Load(object sender , System.Eventargs e){
Response . Write(“欢迎光临”);
Response . End();
Response . Write(“欢迎下次光临”);
}
aa// 欢迎光临
bb// 欢迎下次光临
cc// 欢迎光临
欢迎下次光临
dd// 欢迎光临欢迎下次光临
在aSP.NET中,application是(C)类的实例
aa// Httpapplication
bb// HttpapplicationUtility
cc// HttpapplicationState
dd// Page
在aSP.NET中,下列关于session对象的说法正确的是(D)。(选择一项)
aa// 用户每次打开一个web页面,将会创建一个session对象
bb// 用户关闭客户端web页面后,session对象将立即消失
cc// 应用程序退出后,session对象的值才能消失
dd// 每个用户的Session对象不能被其他用户访问
在aSP.NET中,为了将当前页面跳转到一个相同目录下名为Main.htm的页面,下面方法正确的是(C)。(选择一项)
aa// Server.Execute(“Main.htm”);
bb// Servlet.Transfer(“Main.htm”);
cc// Response.Redirect(“Main.htm”);
dd// Response.Write(“Main.htm”);
某个用aSP。NET技术开发的网站拥有大量的访问量,最近该网经常因为服务器内存占用率过高而宕机,作为该网站技术员的你仔细检查了该网站的系统,发现内存占有率过高是因为每个用户都有大量数据保存在Session中,为了解决该问题你应该进行(C)处理。(选择一项)
aa// 将保存在Session中的数据保存在application中
bb// 将保存在Session中的数据保存在Cookie中
cc// 将Session中对安全性要求不高的数据保存在Cookie中,不经常使用的数据保存在数据库中
dd// 将Session中对安全性要求不高的数据保存在application中,不经常使用的数据保存在Cookie中
对于第三方在线文本编辑控件FreeTextBox,如果需要获取控件中录入文本的HTML代码,需要访问什么属性(A)(选择一项)
aa// Text
bb// HtmlText
cc// Value
dd// SelectText
有时候编辑过程中会出现如下的错误,如果要避免该错误,需要在Page页面指令上做何设置(D):(选择一项)
aa// EnableEventValidation="true"
bb// EnableEventValidation="false"
cc// ValidateRequest="true"
dd// ValidateRequest="false"
使用验证码生成控件Webvalidates,生成验证码的方法为(C):(选择一项)
aa// Generate()
bb// Initial()
cc// Create()
dd// Next()
CodeSmith中,脚本标签写法正确的是(B):(选择一项)
aa// <script runat=”server”></script>
bb// <script runat=”template”></script> 如果不添加会被视为普通文本
cc// <CodeTemplate runat=”server”></CodeTemplate>
dd// <CodeTemplate runat=”template”></CodeTemplate>
利用CodeSmith生成实体类的代码,对于DbType.Int32,应输出的类型为:(C)(选择一项)
aa// byte
bb// short
cc// int
dd// long
下面那种数据源控件适合于三层结构数据绑定(C)
aa// SqlDataSource
bb// accessDataSoure
cc// ObjectDataSoure
dd// XmlDataSoure
下面对于几种数据源控件说法错误的是(A)
aa// SqlDataSource数据源控件不能用于oracle数据库和access数据库。
bb// ObjectDataSource可以对业务对象或其他返回数据的类执行特定的数据访问。
cc// XmlDataSource可以对XML文档执行特定访问,包括物理访问和内存访问。
dd// SiteMapDataSource可以对站点地图提供程序所存储的Web站点执行特定的站点地图数据访问.
为绑定的行添加脚本事件的方法是什么(D)
aa// ItemDataBound
bb// DataBinding
cc// DataBound
dd// RowDataBound
DropDownList控件的哪个属性可获取当前选择的项(A)
aa// DropDownList.SelectedItem.Value
bb// DropDownList.SelectedItem.Text
cc// DropDownList.SelectedValue
dd// DropDownList.SelectedItem
Gridview控件的基类是(C)
aa// HierarchicalDataBoundControl
bb// ListControl
cc// CompositeDataBoundControl
dd// BaseGridriew
下面关于Eval和Bind的区别,说法不正确的是(B)
aa// Eval()方法是静态(只读)方法
bb// Eval方法没有Bind?方法访问速度快
cc// Bind?方法支持读/写功能,可修改回传服务器。
dd// Bind 方法不能格式化字符串
下面关于FileUpload控件说法不正确的是()
aa// 获取上传文件名的属性是FileUpload.PostedFile.FileName
bb// 获取上传文件大小的属性是FileUpload.PostedFile.ContentLength
cc// 获取上传文件类型的属性是FileUpload.PostedFile.ContentType
dd// 保存上传文件的方法是FileUpload.SevaAs
如果用户信息必须填写电话号码,使用那个验证控件(C)
aa// RequiredFieldValidator
bb// REgularExpression
cc// RequiredFieldValidator和regularExpression;
dd// CompareValidator和RequiredFieldValidator;
现在需要验证Textbox的输入数据为年龄,并且要求大于18,小于65应该使用的控件是(C)
aa// RequiredFieldValidator
bb// REgularExpression
cc// RequiredFieldValidator和RangeValidator
dd// CompareValidator和RequiredFieldValidator
ValidationSummary控件的作用是(B)
aa// 检查总和数
bb// 集中显示所有验证的结果
cc// 判断有无超出范围
dd// 检查数值大小
在VS中,下列说法错误的是: D
aa// 内置了轻量级的Web服务器
bb// 无须配置IIS、设置相应权限
cc// 内置了80多个控件
dd// 代码前置,逻辑分明
运行下列代码,如果当天是星期天,且用户输入“accp”(输入框TextBox的ID是txtName),则将输出(C)
string outPut="";
switch (DateTime.Now.DayOfWeek.ToString())
{
case "Saturday": outPut = "{0},Hi"; break;
case "Sunday": outPut = "{0},Ok"; break;
default: outPut = "{0},Bye"; break;
}
string message = string.Format(outPut,txtName.Text);
Response.Write(message);
aa// Hi
bb// Ok
cc// Bye
dd// 无输出
App_Data目录是用来放置(A)
aa// 专用数据文件
bb// 共享文件
cc// 被保护的文件
dd// 代码文件
VS创建Asp.net网站时自动生成的文件和目录有(BCD) 选择三项
aa// app_resource文件夹
bb// app_Data目录
cc// 扩展名为aspx和cs的文件
dd// Web.Config文件
现有用来做开发的生产机和用来做布署的服务器,关于开发布署发布网站说法正确的是:BC 选择二项
aa// 生产机必须安装IIS
bb// 服务器必须安装IIS
cc// 生产机必须安装Windows Server操作系统
dd// 服务器必须安装Windows Server操作系统
B/S典型应用有:BCD 选择三项
aa// 某酒店的内务管理
bb// 购物网站
cc// 个人博客
dd// 论坛
在开发三层结构的网站时,与数据表对应的实体类应写在(D)层
aa// 表示层
bb// 业务逻辑层
cc// 数据访问层
dd// 模型层
某个论坛上有这样的规定:在线时长不够100小时不能发贴,相关的代码应该写在(B)层
aa// 表示层
bb// 业务逻辑层
cc// 数据访问层
dd// 模型层
对于存储过程的调用,应该出现在(C)层
aa// 表示层
bb// 业务逻辑层
cc// 数据访问层
dd// 模型层
下列说法正确的是(AB) 选择二项
aa// 数据访问层要添加模型层的引用
bb// 业务逻辑层要添加数据访问层的引用
cc// 表示层要添加数据访问层业务逻辑层和模型层的引用
dd// 模型层要添加数据访问层的引用
4. 关于asp.net 的几个名词解释,求助。。
1.Request对象
作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。
request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。
Request对象的语法如下:
Request[.collectionlpropertylmethod](variable)
collection集合
clientcertificate 得到在HTTP请求中传递在客户端认证域的值
cookies 使用此集合,可得到cookies值
form 得到form对象中元素的值
querystring 得到变量的值
servervariables 得到预置的环境变量的值
property属性
totalbytes (只读)指定从客户端传递总字节数
buffer 表明页面输出是否有缓冲
cachecontrol 决定代理服务器是否能够对asp的输出进行快取
property属性
charset 字符集
contenttype 指定response的HTTP内容类型
expires 定义一个浏览器缓存中的页面在多长时间后过期
expiresabsolute 定义一个浏览器缓存中的页面什么日期时间后过期
isclientconnected 用户是否连接到服务器
pics 设置pics-label response标题的值,标示pics内容等级
status 由服务器返回的状态行
说明:
1、其中collection表示集合,它和数组很类似,是由若干元素组成的集合。不过数组一般只能用索引(下标)来引用每一个元素,而集合不仅可以用索引来引用每一个元素的值,还可以用元素的名称来引用,如Request.Form("txtA")。事实上,后者是常用的方法。
2、variable又称参数,它就是要获取的元素的名称,可以是字符串常量或字符串变量。例如,对表单信息来说,variable就是每一个表单元素的名称。
3、“【”和“】”之间的参数可以省略,如Request("txtA")。此时因为没有指定集合,所以ASP将会依次在QueryString、Form、Cookies、ServerVariables、ClientCertificate这5种集合中检查是否有信息传入。如果有信息传入,则会返回获取的信息。
4、请注意上面的第二个例子,其中前面的strB是定义的一个变量名称,而后面的strB则是集合中一个元素的名称,两者不是一回事。
method方法
binaryread 得到从客户端传给服务器端的数据
1.Request对象是ASP中常用的对象,用于获取客户端的信息,可以使用Request对象访问任何基于HTTP请求传递的所有信息。通过Request对象能够获得客户端发送给服务器的信息,不能将服务器端的数据发送给客户端的浏览器。Request对象的属性TotalBytes的功能是取得客户端响应数据字节大小。Request对象的方法BinaryRead的功能是以二进制方式读取客户端post的数据。
request对象有五个集合,下面予以介绍:
QueryString
:用以获取客户端附在url地址后的查询字符串中的信息。
例如:stra=Request.QueryString ["strUserld"]
Form
:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)
例如:stra=Request.Form["strUserld"]
Cookies
:用以获取客户端的Cookie信息。
例如:stra=Request.Cookies["strUserld"]
ServerVariables
:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。
例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址
ClientCertificate
:用以获取客户端的身份验证信息
例如:stra=Request.ClientCertificate["VALIDFORM"],对于要求安全验证的网站,返回有效起始日期。
2session对象
用于存储特定的用户会话所需的信息 。 Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议。
Session中文是“会话”的意思,在ASP中代表了服务器与客户端之间的“会话”。Session的作用时间从用户到达某个特定的Web页开始,到该用户离开Web站点,或在程序中利用代码终止某个Session结束。引用Session 则可以让一个用户访问多个页面之间的切换也会保留该用户的信息。
系统为每个访问者都设立一个独立的Session对象,用以存储Session变量,并且各个访问者的Session对象互不干扰。
Session与Cookie是紧密相关的。 Session的使用要求用户浏览器必须支持Cookie,如果浏览器不支持使用Cookie,或者设置为禁用Cookie,那么将不能使用Session。
Session信息对客户来说,不同的用户用不同的Session信息来记录。当用户启用Session时,ASP自动产生一个SessionID.在新会话开始时,服务器将SessionID当做cookie存储在用户的浏览器中。
session语法:
session.集合∣属性∣方法
举例:
<html>
<head>
<title>学好session加油</title>
</head>
<body>
<%
session("greeting")="ASP“
Response.write(session("greeting"))
%>
</body>
</html>
Session对象的集合、属性、方法、事件
名称 描述
Contents集合 包含所有通过脚本命令添加到应用程序中的数据项
SessionID属性 用来标识每一个Session对象
TimeOut属性 用来设置Session会话的超时时间(以分钟表示)
Abandon方法 强行删除当前会话的Session对象,释放系统资源
Session_OnStart事件 建立Session对象时所激发的事件
Session_OnEnd事件 结束Session对象时所激发的事件
StaticObjects集合 包含所有通过<OBJECT>标记添加到应用程序中的对象
3
CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较。
注释:如果输入控件为空,则不会调用任何验证函数,并且验证将成功。使用 RequiredFieldValidator 控件使字段成为必选字段。
属性
属性 描述
BackColor CompareValidator 控件的背景颜色。
ControlToCompare 要与所验证的输入控件进行比较的输入控件。
ControlToValidate 要验证的输入控件的 ID。
Display 验证控件中错误信息的显示行为。
合法值是:
None 验证消息从不内联显示。
Static 在页面布局中分配用于显示验证消息的空间。
Dynamic 如果验证失败,将用于显示验证消息的空间动态添加到页面。
EnableClientScript 布尔值,规定是否启用客户端验证。
Enabled 布尔值,规定是否启用验证控件。
ErrorMessage 当验证失败时在 ValidationSummary 控件中显示的文本。
注释:如果未设置 Text 属性,此文本将显示在验证控件中。
ForeColor 控件的前景颜色。
id 控件的唯一 ID。
IsValid 布尔值,指示由 ControlToValidate 指定的输入控件是否通过验证。
Operator 要执行的比较操作的类型。
运算符是:
Equal
GreaterThan
GreaterThanEqual
LessThan
LessThanEqual
NotEqual
DataTypeCheck
runat 规定控件是服务器控件。必须设置为 "server"。
Text 当验证失败时显示的消息。
Type 规定要对比的值的数据类型。
类型有:
Currency
Date
Double
Integer
String
ValueToCompare 一个常数值,该值要与由用户输入到所验证的输入控件中的值进行比较。
实例
CompareValidator
在此例中,我们在 .aspx 文件中声明了两个 TextBox 控件,一个 Button 控件,以及一个 CompareValidator 控件。如果验证失败,将在 CompareValidator 控件中使用黄色背景红色文本显示 "Validation Failed!"。
CompareValidator 2
在此例中,我们在 .aspx 文件中声明了两个 TextBox,一个 ListBox 控件,一个 Button 控件,以及一个 CompareValidator 控件。check_operator() 函数把 ListBox 控件中选取的运算符设置为 CompareValidator 控件的运算符,然后对 CompareValidator 控件进行验证。如果验证失败,将在 CompareValidator 控件中使用黄色背景和红色文本显示 "Validation Failed!"。
4.FileUpload控件
FileUpload 控件显示一个文本框控件和一个浏览按钮,使用户可以选择客户端上的文件并将它上载到 Web 服务器。用户通过在控件的文本框中输入本地计算机上文件的完整路径(例如,C:\MyFiles\TestFile.txt)来指定要上载的文件。用户也可以通过单击“浏览”按钮,然后在“选择文件”对话框中定位文件来选择文件。
用户选择要上载的文件后,FileUpload 控件不会自动将该文件保存到服务器。您必须显式提供一个控件或机制,使用户能提交指定的文件。例如,可以提供一个按钮,用户单击它即可上载文件。为保存指定文件所写的代码应调用 SaveAs 方法,该方法将文件内容保存到服务器上的指定路径。通常,在引发回发到服务器的事件的事件处理方法中调用 SaveAs 方法。
在文件上传的过程中,文件数据作为页面请求的一部分,上传并缓存到服务器的内存中,然后再写入服务器的物理硬盘中。
有三个方面需要注意:
1.确认是否包含文件
在调用 SaveAs 方法将文件保存到服务器之前,使用 HasFile 属性来验证 FileUpload 控件确实包含文件。若 HasFile 返回 true,则调用 SaveAs 方法。如果它返回 false,则向用户显示消息,指示控件不包含文件。不要通过检查PostedFile 属性来确定要上载的文件是否存在,因为默认情况下该属性包含 0 字节。因此,即使 FileUpload 控件为空,PostedFile 属性仍返回一个非空值。
2.文件上传大小限制
默认情况下,上传文件大小限制为 4096 KB (4 MB)。可以通过设置 httpRuntime 元素的 maxRequestLength 属性来允许上载更大的文件。若要增加整个应用程序所允许的最大文件大小,请设置 Web.config 文件中的 maxRequestLength 属性。若要增加指定页所允许的最大文件大小,请设置 Web.config 中 location 元素内的 maxRequestLength 属性。
上载较大文件时,用户也可能接收到以下错误信息:
aspnet_wp.exe (PID: 1520) was recycled because memory consumption exceeded 460 MB (60 percent of available RAM).
以上信息说明,上传文件的大小不能超过服务器内存大小的60%。这里的60%是Web。config文件的默认配置,是<processModel>配置节中的 memoryLimit 属性默认值。虽然可以修改,但是如果上传文件越大,成功几率越小,不建议使用。
3.上传文件夹的写入权限
应用程序可以通过两种方式获得写访问权限。您可以将要保存上载文件的目录的写访问权限显式授予运行应用程序所使用的帐户。您也可以提高为 ASP.NET 应用程序授予的信任级别。若要使应用程序获得执行目录的写访问权限,必须将 AspNetHostingPermission 对象授予应用程序并将其信任级别设置为 AspNetHostingPermissionLevel.Medium 值。提高信任级别可提高应用程序对服务器资源的访问权限。请注意,该方法并不安全,因为如果怀有恶意的用户控制了应用程序,他(她)也能以更高的信任级别运行应用程序。最好的做法就是在仅具有运行该应用程序所需的最低特权的用户上下文中运行 ASP.NET 应用程序。
FileUpload控件的常用属性:
属性
数据类型
说明
FileBytes
byte[]
获取上传文件的字节数组
FileContent
Stream
获取指定上传文件的Stream对象
FileName
String
获取上传文件在客户端的文件名称
HasFile
Bool
获取一个布尔值,用于表示FileUpload控件是否已经包含一个文件
PostedFile
HttpPostedFile
获取一个与上传文件相关的HttpPostedFile对象,使用该对象可以获取上传文件的相关属性
可以通过3种方法访问上传文件:
1.通过FileBytes属性。该属性将上传文件数据置于字节数组中,遍历该数组,则能够以字节方式了解上传文件的内容。
2.通过FileContent属性。调用该属性可以获得一个指向上传文件的Stream对象。可以使用该属性读取上传文件数据,并使用FileBytes属性显示文件内容。
3.通过PostedFile属性。调用该属性可以获得一个与上传文件相关的HttpPostedFile对象,使用该对象可以获得与上传文件相关的信息。例如,调用HttpPostedFile对象的ContentLength,可以获得上传文件大小;调用HttpPostedFile对象的ContentType属性,可以获得上传文件的类型;调用HttpPostedFile对象的FileName属性,可以获得上传文件在客户端的完整路径(调用FileUpload控件的FileName属性,仅能获得文件名)。
5.DataAdapter
表示一组 SQL 命令和一个数据库连接,它们用于填充 DataSet和更新数据源。 命名空间:System.Data.Common
程序集:System.Data(在 system.data.dll 中)
语法 public class DataAdapter : Component, IDataAdapter
DataAdapter 用作 DataSet 和数据源之间的桥接器以便检索和保存数据。DataAdapter 通过映射Fill(这更改了 DataSet 中的数据以便与数据源中的数据相匹配)和Update(这更改了数据源中的数据以便与 DataSet 中的数据相匹配)来提供这一桥接器。
如果所连接的是 SQL Server 数据库,则可以通过将SqlDataAdapter与关联的SqlCommand和SqlConnection对象一起使用,从而提高总体性能。对于支持 OLE DB 的数据源,请使用 DataAdapter 及其关联的OleDbCommand和 OleDbConnection 对象。对于支持 ODBC 的数据源,请使用 DataAdapter 及其关联的OdbcCommand和OdbcConnection对象。对于 Oracle 数据库,请使用 DataAdapter 及其关联的OracleCommand和OracleConnection对象。
当创建 DataAdapter 的实例时,读/写属性将被设置为初始值。有关这些值的列表,请参见 DataAdapter 构造函数
这些都出自网络。其实我也不懂。能帮一点帮一点吧。
5. ASP服务器配置的完整的流程
分类:ASP.Net
一、备份服务器
使用Ghost软件,将服务器的操作系统备份,一般是C盘,以防万一。
二、安装IIS
三、安装.net1.1框架
首先安装MADC27SD,然后安装.net1.1框架
四、一定要首先安装IIS,然后安装.net框架,如果一旦顺序弄反了,解决办法如下:
找到目录 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
在DOS环境下,运行aspnet_regiis.exe -i 注册IIS
运行aspnet_regiis.exe -c 创建客户端脚本
五、安装SQLServer 2000
注意:数据库一定不要建立在系统盘下面,否则,如果系统瘫痪,那么数据库的全部数据将一并丢失。
应该在另外一个盘下存放数据库文件。
注意:在建立数据库时,一定不要忘记取消新增用户的master数据库的访问权限。
六、配置办公系统文件
在Internet信息服务下找到网站,设置虚拟目录,然后可以通过http://192.168.1.1/epdoc进行访问操作。
在控制面板,管理工具,Internet信息服务中找到默认站点,然后右键,选择属性;如下进行设置: