2012年12月17日 星期一

[學習] 限制上傳的副檔名

Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click

     Dim f As OpenFileDialog = New OpenFileDialog()
     f.Filter = "文件格式(*.pdf;*.doc;*.docx;*.ppt;*.pptx;*.xls;*.xlsx)|*.pdf;*.doc;*.docx;*.ppt;*.pptx;*.xls;*.xlsx"  '支援格式   'WMF   'ICO
     'f.Filter = "All   Image   Formats   (*.bmp;*.jpg;*.jpeg;*.gif;*.png;*.tif)| " & _
     '   "*.bmp;*.jpg;*.jpeg;*.gif;*.png;*.tif|Bitmaps   (*.bmp)|*.bmp| " & _
     '   "GIFs   (*.gif)|*.gif|JPEGs   (*.jpg)|*.jpg;*.jpeg|PNGs   (*.png)|*.png|TIFs   (*.tif)|*.tif|All   Files   (*.*)|*.* "

     f.FilterIndex = 1
     f.ShowDialog(Me)
     Me.txbPath.Text = f.FileName

     If Path.GetExtension(txbPath.Text.Trim) = ".pdf" OrElse Path.GetExtension(txbPath.Text.Trim) = ".doc" OrElse Path.GetExtension(txbPath.Text.Trim) = ".docx" OrElse Path.GetExtension(txbPath.Text.Trim) = ".ppt" OrElse Path.GetExtension(txbPath.Text.Trim) = ".pptx" OrElse Path.GetExtension(txbPath.Text.Trim) = ".xls" OrElse Path.GetExtension(txbPath.Text.Trim) = ".xlsx" Then
     'do nothing
     Else
          If txbPath.Text.Trim <> "" Then
               MsgBox("僅 圖片格式(*.pdf;*.doc;*.docx;*.ppt;*.pptx;*.xls;*.xlsx) 可上傳!!")
          End If
          Exit Sub
     End If

'限制檔案大小

'檔圖片轉檔 並縮圖 - 以減少儲存空間

     'MsgBox(Path.GetFileName(f.FileName)) 取得檔案名稱(含副檔名)
     'Path.GetExtension 取得副檔名
     'Me.PictureBox1.ImageLocation = Me.txbPath.Text '取得完整路徑
End Sub

Note:
除了前端判斷
後端也要判斷
小心偽裝的檔案


參考:
VS 2008
.Net 3.5

~~要如何限制上傳的副檔名~~
如何限制FileUpload的副檔名
怎么限制上传图片的格式和大小? - [Asp.net]
上傳檔案時,限制只能pdf、xls的副檔名
OpenFileDialog 元件常用屬性和方法
Path.GetExtension 方法
Path.GetExtension 获取扩展名
[ASP.NET]將上傳圖檔分成大小圖後存入資料庫
Use With statement with OpenFileDialog

沒有留言:

張貼留言