0

我正在尝试使用文件上传控件调整用户上传的图像的大小并将其保存在文件夹中。但是在 bmp.save(..) 上,我得到了这个异常。

异常类型:System.Runtime.InteropServices.ExternalException

错误消息:GDI+ 中出现一般错误。

堆栈跟踪:在 System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams) at btnUpload_Click(Object sender, EventArgs e)

这是我的代码

   If fileUpload1.HasFile Then
        Dim flStream = fileUpload1.FileContent
        Dim imgMemStream = New MemoryStream

        imgMemStream.SetLength(flStream.Length)
        flStream.Read(imgMemStream.GetBuffer, 0, flStream.Length)

        imgMemStream.Flush()
        flStream.Close()

        Dim imgStream = System.Drawing.Image.FromStream(imgMemStream)
        Dim bmp = New Bitmap(200, 200)
        Dim gr = Graphics.FromImage(bmp)
        gr.DrawImage(imgStream, 0, 0, 200, 200)

        If System.IO.Directory.Exists(Server.MapPath("ProfilePics\")) Then
            bmp.Save(Server.MapPath("ProfilePics\" & employeeId & ".jpg"), Drawing.Imaging.ImageFormat.Jpeg)
        Else
            Throw New Exception("Path not found")
        End If

        imgStream.Dispose()
        bmp.Dispose()
        gr.Dispose()

        Response.Redirect(Me.Request.Url.AbsolutePath) 
End If

我还尝试让 iis_wpg 完全控制该文件夹。

任何帮助是极大的赞赏。

4

1 回答 1

0

对我来说这听起来像是一个权限问题(你已经开始调查它听起来像)。您是否尝试过授予 NETWORK SERVICE 写入该文件夹的权限?

如果这不起作用,请尝试将文本文件写入该文件夹以确定它是否是权限,使用这些方法应该会得到更好的错误。我似乎记得在 IIS 中,有时您还需要在文件系统和通过 IIS 中启用写权限,但这可能是过时的信息。

于 2012-09-06T20:49:22.653 回答