动态获取上传文件的文件类型(OpenFileDialog 的 Filter 属性值)
控件: 一个 OpenFileDialog 控件,name:openfiledialog1
说明:
文件类型:可从数据库获取,这里为了方便,直接用 xls,jpg,pdf,doc 替代
为支持多种类型,文件类型间用 分号(;)隔开
示例: openfiledialog1.Filter = "xls files(*.xls)|*.xls|pdf files(*.pdf)|*.pdf|doc files(*.doc)|*.doc|image files(*.jpg)|*.jpg|all files(*.*)|*.xls;*.pdf;*.doc;*.jpg"
strType = strFillType.Split(",")
For i = 0 To UBound(strType)
str = strType(i)
strFill = "*." & str
strFills = strFills & ";" & strFill
strFillNm = str & " files(" & strFill & ")"
strFilter = strFilter & "|" & strFillNm & "|" & strFill
Next
If strFills.IndexOf(";") = 0 Then
strFills = strFills.Substring(1)
End If
strFilter = strFilter & "|all files(*.*)|" & strFills
'// 得到 OpenFileDialog 的 Filter 属性值
If strFilter.IndexOf("|") = 0 Then
strFilter = strFilter.Substring(1)
End If
Catch ex As Exception
End Try
End Sub
注解:
'// &:连接符
'// Split:返回包含此实例中的子字符串(由指定 System.Char 数组的元素分隔)的 System.String 数组。
'// UBound:返回可用于数组的指定维数的最大下标。
'// IndexOf:报告指定的 System.String 在此实例中的第一个匹配项的索引。
'// Substring:从此实例检索子字符串。子字符串从指定的字符位置开始。
方法二:
'//strDic中保存支持的文件类型
strDic.Add("jsp", "")
strDic.Add("xls", "")
strDic.Add("doc", "")
If IsNothing(strDic) OrElse strDic.ContainsKey(strType) = False Then
'//不支持该类型文件,请重新上传!
Me.MsgShow("", "不支持该类型文件,请重新上传!")
Exit Sub
End If
fs = New IO.FileStream(openfiledialog1.FileName, FileMode.Open, FileAccess.Read)
'//选择文件数据为空
If fs.Length <= 0 Then
Exit Sub
End If
Else
Exit Sub
End If
End With
Catch ex As Exception
End Try
End Sub