ASP.NET總結——上傳檔案

來源:互聯網
上載者:User

標籤:postedfile.filename   c#逸出字元   

       在利用Html中的File控制項上傳檔案時,如何獲得你上傳的檔案的路徑?北大青鳥的視頻中告訴我們用:

       File1.PostedFile.FileName

       可是在斷點調試中,我就發現了問題。

       在Firefox瀏覽器和IETester中,都只顯示檔案名稱,而不顯示檔案的完整路徑,獲得的FileName也只是檔案名稱。比如我選擇的圖片的完整路徑是"E:\提高班課程實踐篇(我)\images\niunanlogo.jpg",但是瀏覽器中顯示的是“niunanlogo.jpg” ,而且調試中顯示的FileName也是“niunanlogo.jpg”,雖說這樣挺方便的,不用我們再像視頻中說的那樣,去專門截取這部分字串(因為視頻中顯示的是完整路徑,需要截取出檔案名稱。)但是,這是為什麼呢?如果我們哪天需要完整的檔案路徑怎麼辦?哈哈,這些問題,早就有人解決過了,這裡我就借鑒一下:

       對於IE或IETester,我們找到:選項-Internet屬性-安全-自訂層級,:

       

                                     


       將“檔案上傳到伺服器時包含本地目錄路徑”一項設成啟動,

       

                                     

        

       這樣就能顯示出完整路徑了。

       對於FireFox也有解決辦法,有興趣的可以自己查一查啊!

       解決了上述問題,又產生了新的疑惑,這個時候斷點調試發現我的程式(VS2010 C#)中的FileName顯示為:

        "E:\\提高班課程實踐篇(我)\\images\\niunanlogo.jpg"

       而視頻中顯示的為:

        @"E:\提高班課程實踐篇(我)\images\niunanlogo.jpg"

       這又是怎麼回事兒哩?

       我們先不著急解答上述問題,先跟我一起想象一下下面的情景:

       如果你想在Label中顯示一句話,如下:
      

       與"take"相關的英語短語很多


       你在程式中怎麼實現呢?
       如果在程式中你直接寫:
       Label1.Text = "與"take"相關的英語短語很多";

       這樣是不行的。
       因為一般情況下:
       ""是用來表示它括起來的內容是字串的。
       可是我們現在只想讓它表示一個雙引號怎麼辦?
       這時候就需要逸出字元了,大家一定不陌生,一個“\”功能無比強大,它能“強迫”別的字元做出改變。
       然後我們可以這樣寫:

       Label1.Text = "與\"take\"相關的英語短語很多";
       然後一點問題都沒有哦!

       現在,假入我們想讓Label中顯示:
       E:\提高班課程實踐篇(我)\images\niunanlogo.jpg
       那麼我們怎麼寫呢?
       如果我們在程式中寫成:
       Label1.Text= "E:\提高班課程實踐篇(我)\images\niunanlogo.jpg";
       會提示錯誤:“無法識別的逸出序列”
       也就是說預設情況下,\ 表示逸出字元,但是我們想讓它僅表示一個反斜線,那麼我們就這樣寫:
       Label1.Text= "E:\\提高班課程實踐篇(我)\\images\\niunanlogo.jpg";
       之後,我們就找出規律,如果我們想改變某個字元的原本意義,就用逸出字元(\)+你要改變意義的字元就OK了。如果我們相用n表示換行,那麼就寫成\n。
       大家也看到了,如果在一個路徑字串中,有多個\,那麼我就得額外多寫同樣個數的\,有沒有簡便的辦法呢?
       當然有了,寫成如下形式:
       Label1.Text = @"E:\提高班課程實踐篇(我)\images\niunanlogo.jpg";
       我們知道在預設情況下,\是被看做逸出字元的,但是在前面加上@之後,它後面的字串中的\就會被都當做反斜線處理,不把它看做逸出字元了。
       所以,現在我們來看看為什麼視頻中和我的VS2010顯示的不一樣呢?其實它們是一回事,只是是兩種寫法,目的都是讓\表示為反斜線。所以它們兩個是等價的。

       總結:

       這篇文章主要是通過我在實踐當中遇到的問題,講了講如何用Html的File控制項顯示完整檔案路徑以及逸出字元的基本知識,內容很簡單,但是解決問題的過程很精彩!

ASP.NET總結——上傳檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.