SaveAs方法配置为需要根路径,并且路径'〜/ Images / FleaMarket / uploadedImages / mitali2054 / 5.jpg'未植根

时间:2011-10-23 05:45:53

标签: c# asp.net vb.net

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'没有扎根。“

1 个答案:

答案 0 :(得分:3)

Server.MapPath应配置为在服务器端写入磁盘:

基本用法:

String FilePath = Server.MapPath("/App_Data");

配置:您可以参考这两个Q&amp; A

Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/"). What is the difference?

The SaveAs method is configured to require a rooted path, and the path 'fp' is not rooted