1. 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
2. ASP.NET上傳文件代碼!!怎麼寫比如說:上傳圖片
/*
我修改了一天時間.終於找到門路了。呵呵
ACCESS中存放文件內容的欄位類型為:OLE對象
SQL中存放文件內容的欄位類型為:image
此代碼為上傳文件代碼.梢後整理發布下載文件代碼
代碼設計實現功能:asp.NET上傳文件到指定文件夾,ACCESS資料庫,SQL資料庫代碼
已經測試文件格式 .TXT,JPG..MDB.GIF
*/
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.OleDb;
using System.Data.SqlClient;
namespace WebApplication1.ManageFile
{
/// <summary>
/// ManageUploadFile 的摘要說明。
/// </summary>
public class ManageUploadFile : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.HtmlControls.HtmlInputFile file1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.CheckBox CheckBox1;
protected System.Web.UI.WebControls.Button Button4;
protected System.Web.UI.WebControls.Button Button5;
protected System.Web.UI.WebControls.Button Button3;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置用戶代碼以初始化頁面
}
#region Web 窗體設計器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調用是 ASP.NET Web 窗體設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Button3.Click += new System.EventHandler(this.Button3_Click);
this.Button4.Click += new System.EventHandler(this.Button4_Click);
this.Button5.Click += new System.EventHandler(this.Button5_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_ServerClick(object sender, System.EventArgs e)
{
if(file1.PostedFile.FileName!="")
{
if(CheckBox1.Checked)
{
}
else
{
//上傳文件到資料庫中
string sUploadFileName=file1.PostedFile.FileName;
string strUploadFile=Server.MapPath(".")+"\\"+DropDownList1.SelectedItem.Text.ToString()+"\\";
sUploadFileName=sUploadFileName.Substring(sUploadFileName.LastIndexOf("\\")).Replace("\\","");
string sUploadFilePath=strUploadFile+sUploadFileName;
int sUploadFileLength=file1.PostedFile.ContentLength;
string sUploadFileType=file1.PostedFile.ContentType.ToString();
//AppDomain.CurrentDomain.BaseDirectory.ToString()站點跟目錄
//file1.PostedFile.SaveAs(sUploadFilePath);
System.Byte[] Docbuffer = new byte[sUploadFileLength];
Stream objStream = file1.PostedFile.InputStream;
objStream.Read(Docbuffer,0,sUploadFileLength);
string DbName=Server.MapPath(".")+"\\DataBase\\HtmlFile.mdb";
string ConnectionString ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + DbName;
string AccessSqlString="Insert Into UploadFiles(UploadFileName,UploadFileType,UploadFilePath,UploadFileLength,UploadFileContent) Values('" +sUploadFileName+ "','"+sUploadFileType+ "','" +sUploadFilePath+ "',"+sUploadFileLength+ ","+ Docbuffer + ")";
OleDbConnection myConnection =new OleDbConnection(ConnectionString);
myConnection.Open();
OleDbCommand myCommand =new OleDbCommand(AccessSqlString,myConnection);
myCommand.ExecuteNonQuery();
myConnection.Close();
string strUpfileResult="上傳文件到資料庫成功\r\n";
strUpfileResult=strUpfileResult+"文件名"+sUploadFileName+"\r\n";
strUpfileResult=strUpfileResult+"文件大小"+sUploadFileLength+"\r\n";
strUpfileResult=strUpfileResult+"文件格式"+sUploadFileType+"\r\n";
TextBox1.Text=strUpfileResult;
}
}
}
private void Button2_Click(object sender, System.EventArgs e)
{
string strCurrentDirectory=Server.MapPath(".");
DirectoryInfo di=new DirectoryInfo(strCurrentDirectory);
int dtotal=0;
if(DropDownList1.Items.Count!=0)
{
for(int j=DropDownList1.Items.Count-1;j>=0;j--)
{
DropDownList1.Items.RemoveAt(j);
}
}
for(int i=0;i<di.GetDirectories().Length;i++)
{
//subd=subd+"<br>"+di.GetDirectories().GetValue(i);
dtotal=dtotal+1;
DropDownList1.Items.Add(di.GetDirectories().GetValue(i).ToString());
}
}
private void Button3_Click(object sender, System.EventArgs e)
{
string sUploadFileName=file1.PostedFile.FileName;
string strUploadFile=Server.MapPath(".")+"\\"+DropDownList1.SelectedItem.Text.ToString()+"\\";
sUploadFileName=sUploadFileName.Substring(sUploadFileName.LastIndexOf("\\")).Replace("\\","");
string sPath=strUploadFile+sUploadFileName;
//AppDomain.CurrentDomain.BaseDirectory.ToString()站點跟目錄
file1.PostedFile.SaveAs(sPath);
string sUploadFileLength=file1.PostedFile.ContentLength.ToString();
string sUploadFileType=file1.PostedFile.ContentType.ToString();
string strUpfileResult="上傳文件成功\r\n";
strUpfileResult=strUpfileResult+"文件名"+sUploadFileName+"\r\n";
strUpfileResult=strUpfileResult+"文件大小"+sUploadFileLength+"\r\n";
strUpfileResult=strUpfileResult+"文件格式"+sUploadFileType+"\r\n";
TextBox1.Text=strUpfileResult;
}
private void Button4_Click(object sender, System.EventArgs e)
{
//上傳文件到資料庫中
string sUploadFileName=file1.PostedFile.FileName;
string strUploadFile=Server.MapPath(".")+"\\"+DropDownList1.SelectedItem.Text.ToString()+"\\";
sUploadFileName=sUploadFileName.Substring(sUploadFileName.LastIndexOf("\\")).Replace("\\","");
string sUploadFilePath=strUploadFile+sUploadFileName;
int sUploadFileLength=file1.PostedFile.ContentLength;
string sUploadFileType=file1.PostedFile.ContentType.ToString();
//AppDomain.CurrentDomain.BaseDirectory.ToString()站點跟目錄
//file1.PostedFile.SaveAs(sUploadFilePath);
System.Byte[] Docbuffer = new byte[sUploadFileLength];
Stream objStream = file1.PostedFile.InputStream;
objStream.Read(Docbuffer,0,sUploadFileLength);
string DbName=Server.MapPath(".")+"\\DataBase\\HtmlFile.mdb";
string ConnectionString ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + DbName;
//string AccessSqlString="Insert Into UploadFiles(UploadFileName,UploadFileType,UploadFilePath,UploadFileLength) Values('" +sUploadFileName+ "','"+sUploadFileType+ "','" +sUploadFilePath+ "',"+sUploadFileLength+")";
string AccessSqlString="Insert Into UploadFiles(UploadFileName,UploadFileType,UploadFilePath,UploadFileLength,UploadFileContent) Values('" +sUploadFileName+ "','"+sUploadFileType+ "','" +sUploadFilePath+ "',"+sUploadFileLength+ ",'"+ Docbuffer + "')";
OleDbConnection myConnection =new OleDbConnection(ConnectionString);
myConnection.Open();
OleDbCommand myCommand =new OleDbCommand(AccessSqlString,myConnection);
myCommand.ExecuteNonQuery();
myConnection.Close();
string strUpfileResult="上傳文件到資料庫成功\r\n";
strUpfileResult=strUpfileResult+"上傳文件名"+sUploadFileName+"\r\n";
strUpfileResult=strUpfileResult+"上傳文件大小"+sUploadFileLength+"\r\n";
strUpfileResult=strUpfileResult+"上傳文件路徑"+sUploadFilePath+"\r\n";
strUpfileResult=strUpfileResult+"上傳文件格式"+sUploadFileType+"\r\n";
TextBox1.Text=strUpfileResult;
}
private void Button5_Click(object sender, System.EventArgs e)
{
//上傳文件到資料庫中
string sUploadFileName=file1.PostedFile.FileName;
string strUploadFile=Server.MapPath(".")+"\\"+DropDownList1.SelectedItem.Text.ToString()+"\\";
sUploadFileName=sUploadFileName.Substring(sUploadFileName.LastIndexOf("\\")).Replace("\\","");
string sUploadFilePath=strUploadFile+sUploadFileName;
int sUploadFileLength=file1.PostedFile.ContentLength;
string sUploadFileType=file1.PostedFile.ContentType.ToString();
//AppDomain.CurrentDomain.BaseDirectory.ToString()站點跟目錄
//file1.PostedFile.SaveAs(sUploadFilePath);
System.Byte[] Docbuffer = new byte[sUploadFileLength];
Stream objStream = file1.PostedFile.InputStream;
objStream.Read(Docbuffer,0,sUploadFileLength);
//string strCon ="Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;";
//UID=sa,PWD=hNXQF222,Server=127.0.0.1,Database=Aspnet";
/*
SqlCommand myCommand = new SqlCommand(myExecuteQuery, myConnection);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
*/
string strConn ="DATABASE=Aspuser;SERVER=localhost;UID=sa;PWD=hNXQF222;";
SqlConnection Conn = new SqlConnection(strConn);
Conn.Open();
string mySqlCommand = "INSERT INTO UploadFiles (UploadFileName,UploadFileType,UploadFilePath,UploadFileLength,UploadFileContent) VALUES (@UploadFileName,@UploadFileType,@UploadFilePath,@UploadFileLength,@UploadFileContent)";
SqlCommand CmdObj = new SqlCommand(mySqlCommand, Conn);
CmdObj.Parameters.Add("@UploadFileName",SqlDbType.VarChar,50).Value = sUploadFileName;
CmdObj.Parameters.Add("@UploadFileType",SqlDbType.VarChar,50).Value = sUploadFileType;
CmdObj.Parameters.Add("@UploadFilePath",SqlDbType.VarChar,200).Value = sUploadFilePath;
CmdObj.Parameters.Add("@UploadFileLength",SqlDbType.BigInt,8).Value = sUploadFileLength;
CmdObj.Parameters.Add("@UploadFileContent",SqlDbType.Image).Value = Docbuffer;
CmdObj.ExecuteNonQuery();
Conn.Close();
string strUpfileResult="上傳文件到資料庫成功\r\n";
strUpfileResult=strUpfileResult+"上傳文件名"+sUploadFileName+"\r\n";
strUpfileResult=strUpfileResult+"上傳文件大小"+sUploadFileLength+"\r\n";
strUpfileResult=strUpfileResult+"上傳文件路徑"+sUploadFilePath+"\r\n";
strUpfileResult=strUpfileResult+"上傳文件格式"+sUploadFileType+"\r\n";
TextBox1.Text=strUpfileResult;
}
}
}
3. 我網站里自己出現了「aspnet_client」這個文件夾,是干什麼的
安裝了.net框架之後,就會在網站目錄下出現這樣的文件夾.用以支持.net環境.1_1_4322表示你的.net
framework
的版本為
1.1.4322,裡面的3個文件用於為.net驗證控制項提供腳本支持
4. 我網站里自己出現了「aspnet_client」這個文件夾,是干什麼的
安裝了.net框架之後,就會在網站目錄下出現這樣的文件夾.用以支持專.net環境.1_1_4322表示你的屬.net framework 的版本為 1.1.4322,裡面的3個文件用於為.net驗證控制項提供腳本支持
5. 網站主機上突然冒出個aspnet_client文件夾怎麼也刪不掉!怎麼辦
是中病毒了,中了病毒一般都會操作異常也刪除不了,電腦是有病毒就要殺除,不盡早殺除就會影響你的電腦,用金山毒霸2011吧,雲技術還是挺厲害的,主要是小,而且快,你可以去網路搜索金山毒霸2011,在第一頁的第一條連接就能找到免費下載的地址
6. jquery Uploadify上傳文件
Uploadify是JQuery的一個上傳插件,實現的效果非常不錯,帶進度顯示。不過官方提供的實例時php版本的,本文將詳細介紹Uploadify在Aspnet中的使用,您也可以點擊下面的鏈接進行演示或下載。
首先按下面的步驟來實現一個簡單的上傳功能。
1 創建Web項目,命名為JQueryUploadDemo,從官網上下載最新的版本解壓後添加到項目中。
2 在項目中添加UploadHandler.ashx文件用來處理文件的上傳。
3 在項目中添加UploadFile文件夾,用來存放上傳的文件。
進行完上面三步後項目的基本結構如下圖:
7. 關於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 構造函數
這些都出自網路。其實我也不懂。能幫一點幫一點吧。