1-有擴展名,依據(jù)擴展名判斷(這個簡單)
成都創(chuàng)新互聯(lián)主營江海網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,江海h5成都微信小程序搭建,江海網(wǎng)站營銷推廣歡迎江海等地區(qū)企業(yè)咨詢
2-沒有擴展名,比如給你個圖片文件image,文件沒有擴展名,可以通過以下方式進行判斷,但同時如果確定是圖片且系統(tǒng)支持的類型,則無需關(guān)心文件類型,直接讀取到Image就可以,系統(tǒng)也是依據(jù)以下的方式判斷
1.JPEG【判斷文件開始2字節(jié)與結(jié)束2字節(jié)】
- 文件頭標識 (2 bytes): $ff, $d8 (SOI) (JPEG 文件標識)
- 文件結(jié)束標識 (2 bytes): $ff, $d9 (EOI)
2.TGA
- 未壓縮的前5字節(jié) 00 00 02 00 00
- RLE壓縮的前5字節(jié) 00 00 10 00 00
3.PNG
- 文件頭標識 (8 bytes) 89 50 4E 47 0D 0A 1A 0A
4.GIF
- 文件頭標識 (6 bytes) 47 49 46 38 39(37) 61
G I F 8 9 (7) a
5.BMP
- 文件頭標識 (2 bytes) 42 4D
B M
6.PCX
- 文件頭標識 (1 bytes) 0A
7.TIFF
- 文件頭標識 (2 bytes) 4D 4D 或 49 49
8.ICO
- 文件頭標識 (8 bytes) 00 00 01 00 01 00 20 20
9.CUR
- 文件頭標識 (8 bytes) 00 00 02 00 01 00 20 20
10.IFF
- 文件頭標識 (4 bytes) 46 4F 52 4D
F O R M
11.ANI
- 文件頭標識 (4 bytes) 52 49 46 46
R I F F
Dim CtrlRange As Object
On Error Resume Next
Do
Err.Clear()
CtrlRange = Ie.Document.Body.DomElement.createControlRange()
CtrlRange.Add(Ie.Document.DomDocument.GetElementById("verifypic"))
CtrlRange.execCommand("Copy") '獲取驗證碼
If Clipboard.ContainsData(DataFormats.Bitmap) Then
PictureBox1.Image = Clipboard.GetData(DataFormats.Bitmap) '在Picture1控件上顯示
End If
If Err.Number 0 Then WaitingMS(100) ‘延時
Loop While Err.Number 0
以前找的 vbnet里也可以用
實現(xiàn)過程,在需要調(diào)用的頁面使用image控件調(diào)用驗證碼生成的頁面,驗證碼生成的頁面生成驗證圖片且將驗證信息保存至Session中,調(diào)用頁面中通過Session判斷用戶是否輸入正確。道理是這樣,以下看代碼:
生成驗證碼頁面:
gif.ASPx
%@importnamespace="System"%
%@importnamespace="System.io"%
%@importnamespace="System.Drawing"%
%@importnamespace="System.Drawing.Imaging"%
scriptlanguage="VB"runat="server"
SubPage_Load(ByValSenderAsObject,ByValeAsEventArgs)
'RndNum為生成隨機碼的函數(shù),
DimVNumAsString=RndNum(4)'該值為生成驗證碼的位數(shù)
Session("VNum")=VNum'讀取Session
ValidateCode(VNum) '根據(jù)Session生成圖片
EndSub
'--------------------------------------------
'生成圖象驗證碼函數(shù)
SubValidateCode(ByValVNum)
DimImgAsSystem.Drawing.Bitmap
DimgAsGraphics
DimmsAsMemoryStream
DimgheightAsInteger=Int(Len(VNum)*14)
'gheight為圖片寬度,根據(jù)字符長度自動更改圖片寬度
Img=NewBitmap(gheight,24)
g=Graphics.FromImage(Img)
g.DrawString(VNum,(NewFont("Arial",12)),(NewSolidBrush(Color.Red)),3,3)'在矩形內(nèi)繪制字串(字串,字體,畫筆顏色,左上x.左上y)
ms=NewMemoryStream()
Img.Save(ms,ImageFormat.Png)
Response.ClearContent()'需要輸出圖象信息要修改HTTP頭
Response.ContentType="image/Png"
Response.BinaryWrite(ms.ToArray())
g.Dispose()
Img.Dispose()
Response.End()
EndSub
'--------------------------------------------
'函數(shù)名稱:RndNum
'函數(shù)參數(shù):VCodeNum--設(shè)定返回隨機字符串的位數(shù)
'函數(shù)功能:產(chǎn)生數(shù)字和字符混合的隨機字符串
FunctionRndNum(ByValVcodeNum)
DimVcharAsString="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn),G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z"'需要使用中文驗證,可以修改這里和ValidateCode函數(shù)中的字體
DimVcArray()AsString=Split(Vchar,",")'將字符串生成數(shù)組
DimVNumAsString=""
DimiAsByte
Fori=1ToVcodeNum
Randomize()
VNum=VNumVcArray(Int(35*Rnd()))'數(shù)組一般從0開始讀取,所以這里為35*Rnd
Next
ReturnVNum
EndFunction
/script
調(diào)用頁面:
demo.ASPx
scriptlanguage="VB"Runat="Server"
SubPage_Load(Senderasobject,easeventargs)
dimVNumasstring=Session("VNum")
Session.Abandon()
ViewState("VNum")=VNum
EndSub
'下面的事件代碼是用來測試驗證碼
SubbtnSubmit_click(senderasobject,easeventargs)
'判斷輸入的驗證碼與所給是否相同
IftxtValidateCode.Text=CStr(ViewState("VNum"))Then
ensonShow.text="fontcolor='red'提示:驗證通過/font"
Else
ensonShow.text="所填寫的驗證碼與所給的不符"
EndIf
EndSub
/script
html
body
formrunat="server"
divalign="center"
tablewidth="750"
tr
tdvalign="middle"驗證碼:/td
!--調(diào)用驗證圖片生成頁---
tdvalign="top"asp:Imageid="Image1"runat="server"ImageUrl="gif.aspx"http://td
/tr
tr
tdvalign="top"輸入驗證碼:/td
tdvalign="top"asp:textboxID="txtValidateCode"runat="server"TextMode="SingleLine"/fontcolor="#FF0000"size="2"*區(qū)分大小寫/font/td
/tr
tr
tdcolspan="2"valign="top"align="center"asp:buttonID="btnSubmit"runat="server"Text="驗證"onclick="btnSubmit_click"/
asp:labelID="ensonShow"runat="server"/
/td
/tr
/table
/div
/form
/body
/html