限制上傳圖片的解析度
Dim savePath As String = "c:\FileTemp\"
Dim FileSize As Double
'判斷是否已選取檔案
If FileUpload1.HasFile Then
Try
'取得檔案名稱
Dim FileName As String = FileUpload1.FileName
'將儲存路徑與檔案名稱合併成一個字串
savePath = savePath + FileName
'取得檔案類型,"/"以前的字串為檔案類型
Dim tempType() As String = Split(FileUpload1.PostedFile.ContentType, "/")
'將檔案大小轉成kb
FileSize = FileUpload1.PostedFile.ContentLength / 1000
Literal2.Text = "檔案大小: " & FileSize & "KBytes"
If tempType(0) <> "image" Then
Label3.Text = "上傳失敗, 此檔案不是圖片檔!"
ElseIf FileSize > 5000 Then '1000=1Mbytes
Label3.Text = "上傳失敗, 檔案大小超過限制!"
ElseIf True Then
'因為要判斷解析度, 先將檔案上傳至設定目錄中
FileUpload1.SaveAs(savePath)
'若在這是讀到不完整的圖檔, 再下列取得原始圖檔部份會
'出現"System.OutOfMemoryException: 記憶體不足"例外
'讀取原始圖檔, 目錄是上傳檔案的儲存目錄
Dim Im As Image = Image.FromFile("C:\FileTemp\" & FileName)
'限制解析度(圖片長寬)大小
If Im.Width > 800 Or Im.Height > 600 Then
Label3.Text = "上傳失敗, 解析度超過限制!"
Im.Dispose() '最後將物件釋放
System.IO.File.Delete("C:\FileTemp\" & FileUpload1.FileName) '將檔案刪除
Else
Label3.Text = "上傳成功, 檔名為: " & FileName & "圖片長寬為: " & Im.Width & " × " & Im.Height
Im.Dispose() '最後將物件釋放
End If
End If
Catch ex As OutOfMemoryException
Label3.Text = "圖檔不完整, 請上傳其他圖檔!"
End Try
End If