Private Function UploadPic() As String
Const bmpw As Integer = 300
Const bmph As Integer = 300
Dim itemID As String = MaxItemNo()
Dim filePath As String = "~/Images/FleaMarket/uploadedImages/" & User.Identity.Name.ToString & "/" & itemID & Path.GetExtension(fuImage.FileName)
MsgBox(filePath)
If fuImage.HasFile Then
'lblMessage.Text = ""
If checkFileType(fuImage.FileName) Then
**fuImage.PostedFile.SaveAs(filePath)**
Dim newWidth As Integer = bmpw
Dim newHeight As Integer = bmph
Dim upBmp As Bitmap = Bitmap.FromStream(fuImage.PostedFile.InputStream)
Dim newBmp As Bitmap = New Bitmap(newWidth, newHeight, Imaging.PixelFormat.Format24bppRgb)
newBmp.SetResolution(72, 72)
Dim upWidth As Integer = upBmp.Width
Dim upHeight As Integer = upBmp.Height
Dim newX As Integer = 0
Dim newY As Integer = 0
Dim reduce As Decimal
If upWidth > upHeight Then
reduce = newWidth / upWidth
newHeight = Int(upHeight * reduce)
newY = Int((bmph - newHeight) / 2)
newX = 0
ElseIf upWidth < upHeight Then
reduce = newHeight / upHeight
newWidth = Int(upWidth * reduce)
newX = Int((bmpw - newWidth) / 2)
newY = 0
ElseIf upWidth = upHeight Then
reduce = newHeight / upHeight
newWidth = Int(upWidth * reduce)
newX = Int((bmpw - newWidth) / 2)
newY = Int((bmph - newHeight) / 2)
End If
Dim newGraphic As Graphics = Graphics.FromImage(newBmp)
Try
newGraphic.Clear(Color.White)
newGraphic.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
newGraphic.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
newGraphic.DrawImage(upBmp, newX, newY, newWidth, newHeight)
newBmp.Save(MapPath(filePath), Imaging.ImageFormat.Png)
'Image1.ImageUrl = filePath
'Image1.Visible = True
Catch ex As Exception
'lblMessage.Text = ex.ToString
Finally
upBmp.Dispose()
newBmp.Dispose()
newGraphic.Dispose()
End Try
Else
lblMessage.Text = "Please select bmp, jpg, jpeg, gif or png as file format!"
End If
End If
Return filePath
End Function
这是我用来上传图片的代码....但是我收到错误“SaveAs方法被配置为需要有根路径,路径'〜/ Images / FleaMarket / uploadedImages / mitali2054 / 5.jpg'没有扎根。“
答案 0 :(得分:3)
Server.MapPath应配置为在服务器端写入磁盘:
基本用法:
String FilePath = Server.MapPath("/App_Data");
配置:您可以参考这两个Q&amp; A
The SaveAs method is configured to require a rooted path, and the path 'fp' is not rooted