HttpFileCollection類


  最近在學HttpRequest類搞文件上傳的時候看到Request.Files返回了HttpFileCollection 這個類的一個對象,這個類用於獲取瀏覽器上傳的文件集合,在文件上傳的時候可以通過這個集中獲取上傳的文件內容,文件名等信息。以下來詳細了解一下這個類。

以下給出常用屬性與公用方法。

1、屬性

AllKeys獲取一個字符串數組,該數組包含文件集合中所有成員的鍵名key,說白了就是所有<input type=”file” name=”xx”>name的值組成的字符串數組。

Count  :獲取包含在 NameObjectCollectionBase 實例中的鍵/值對的數目。說白了就是<input type=”file” name=”xx”>的數量。

Item  :表示可通過索引訪問。說白了就是這個對象里的集合可以直接用索引訪問,包括數字索引與key名訪問。

如:HttpFileCollection FileCollect = request.Files;

FileCollect[0]或request.Files[0]與Get一樣,返回的是HttpPostedFile 對象。關於HttpPostedFile這個類可以查看http://www.cnblogs.com/kissdodog/archive/2013/01/12/2857833.html

Keys: 獲取NameObjectCollectionBase.KeysCollection 實例,該實例包含 NameObjectCollectionBase 實例中的所有鍵。

2、方法

CopyTo:從指定的數組索引處開始,將文件集合的成員復制到 Array 中。 

Get:可以通過索引或key名稱讀取,從文件集合中返回一個單獨的 HttpPostedFile 對象。重載此屬性以允許按key名稱或數字索引來檢索對象。 

GetHashCode:用作特定類型的哈希函數。GetHashCode 適合在哈希算法和數據結構(如哈希表)中使用。

GetKey 返回具有指定數字索引的 HttpFileCollection 成員名稱。

來看代碼:

  注意表單提交的編碼方式為enctype="multipart/form- data"

        public ActionResult GetForm()
        {
            HttpRequest request = System.Web.HttpContext.Current.Request;
            HttpFileCollection FileCollect = request.Files;     //主角登場,獲取成HttpFileCollection對象集合,集合中包含了上傳所有內容,所有的<inut type="file">上傳的內容都在集合里了
            if (FileCollect.Count > 0)          //如果集合的數量大於0
            {
                foreach (string str in FileCollect)
                {
                    HttpPostedFile FileSave = FileCollect[str];  //用key獲取單個文件對象HttpPostedFile
                    string imgName = DateTime.Now.ToString("yyyyMMddhhmmss");
                    string imgPath = "/" + imgName + FileCollect.Get(str).FileName;
                    string AbsolutePath = Server.MapPath(imgPath);
                    FileSave.SaveAs(AbsolutePath);              //將上傳的東西保存
                    Response.Write("<img src='" + imgPath + "'/>");
                }
            }
            return Content("鍵值對數目:" + FileCollect.Count);
        }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM