導航:首頁 > 文件教程 > aspnetweb文件上傳

aspnetweb文件上傳

發布時間:2023-07-20 19:16:44

㈠ 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

㈡ asp.net文件上傳怪事

我做過上傳是upload 上傳的是圖片格式
string pic = rs.GetValue(6).ToString();
string[] split = pic.Split(new Char[] { ',' });
for (int i = 0; i < split.Length; i++)
{
Response.Write("<img name='' src='../upload/"+split[i]+"' width='170' height='300' alt='' />");
}
非常之快

閱讀全文

與aspnetweb文件上傳相關的資料

熱點內容
win10改變文件格式 瀏覽:475
linux中的物理地址和虛擬地址 瀏覽:493
有哪些app可以接游戲訂單 瀏覽:472
蘋果硬碟數據恢復要多少錢 瀏覽:394
js綁定下拉框資料庫數據 瀏覽:448
cad文件怎麼復制到另一個文件里邊 瀏覽:858
dxp鑽孔文件 瀏覽:631
iphone大悅城換機 瀏覽:538
找結婚對象上什麼網站 瀏覽:974
學生信息管理系統程序設計報告 瀏覽:640
微信文件怎麼刪除怎麼恢復 瀏覽:407
編程程序怎麼復制 瀏覽:467
文件更改 瀏覽:327
冰點文件路徑 瀏覽:730
軟體一點開文件就關閉 瀏覽:88
網路如何把人捧紅 瀏覽:961
軟體傳輸文件 瀏覽:184
密碼記錄器ios 瀏覽:412
兩個電腦數據怎麼一樣 瀏覽:829
順豐有什麼買東西的app 瀏覽:377

友情鏈接