我正在尝试使用fileupload控件调整大小并将用户上传的图像保存在文件夹中。但是在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完全控制。
非常感谢任何帮助。
答案 0 :(得分:0)
这听起来像是一个权限问题(你已经开始调查它听起来像)。您是否尝试过授予NETWORK SERVICE权限以写入该文件夹?
如果这不起作用,请尝试将文本文件写入该文件夹以确定它是否是权限,您应该使用这些方法获得更好的错误。我似乎记得在IIS中,有时您还需要在文件系统和IIS中启用写入权限,但这可能是过时的信息。