您好,登錄后才能下訂單哦!
本篇文章為大家展示了ASP.NET中怎么限制上傳文件類型,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在調用PostFile對象的SaveAs方法保存上傳文件之前,可以通過PostFile對象的FileName屬性得到上傳的文件名。而有了上傳的文件名,就可以采用比對文件后綴名的方法知道上傳的文件是否屬于允許上傳的文件類型。
根據這個思想,我們就得到了下面這段代碼:
If Path.GetExtension(sFilePath) <> ".zip" Then Label2.Text = "本應用程序只允許上傳zip格式的文件,請重新選擇!" Return
這時如果上傳后綴名不是zip的文件,就會發現文件無法上傳了。不過,這并表示我們就不能把上傳其他格式的文件了。其實,如果在上傳前,事先把文件后綴名改成zip,上面這段代碼就失去作用了。
之所以會出現這種情況,在于上面的判斷僅僅比對了文件名字符串,并沒有對文件格式做進一步的分析。因此,如果要徹底達到ASP.NET限制上傳文件類型,還需要用到PostFile對象的ContentType屬性。ContentType屬性的功能是獲取客戶端發送的文件的 MIME (注一)內容類型,由于瀏覽器在向服務器發送請求前,首先會確定發送內容的MIME類型,并將MIME類型作為信息的一部分提交到服務器端,因此,有了MIME類型信息(注二),就可以準確知道上傳文件的實際類型了。
If File1.PostedFile.ContentType <> "application/zip" Then
Label2.Text = "本應用程序只允許上傳zip格式的文件,請重新選擇!"
這時,如果再采用修改后綴名的方法上傳文件就會發現再也無法上傳了。
注一:MIME是一種技術規范,其中文翻譯為多用途Internet郵件擴展(Multipurpose Internet Mail Extensions),主要用來在Internet傳輸過程中表示不同編碼格式的文件;
注二:要獲取不同文件格式的MIME定義,只要啟動注冊表編輯器,然后在HKEY_CLASSES_ROOT下找到跟后綴名對應的注冊表項,如果存在文件格式的MIME定義,在右側窗口就會顯示一個名為“Content Type”的鍵,而這個鍵的值就是文件格式的MIME定義。
上述內容就是ASP.NET中怎么限制上傳文件類型,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。