.NET 错误码信息1 -- GDI+ 中发生一般性错误
今天公司要求做一个在网站上上传图片自动加水印的东东~~~~
但是做好后,在本地测试一切正常,在服务器上测试,就报"GDI+ 中发生一般性错误",偶尔"file not find".
在网上看了下,说是服务器文件夹权限的问题, 确认aspnet或者network service有覆盖文件等相应权限,或确认没有同名jpg文件存在.
经过多次修改,总是跳出"GDI+ 中发生一般性错误".想了想,会不会是服务器不能对本地的图片文件进行GDI操作呢,
试试吧,果然,我先把本地图片传到服务器上后,再对它加水印,一切正常.
我就不理解了,为什么就不能直接操作本地文件呢(虽然问题已解决)?大家有谁知道请帮我解释一下,谢谢....
错误代码如下:
修改后的正常代码:
但是做好后,在本地测试一切正常,在服务器上测试,就报"GDI+ 中发生一般性错误",偶尔"file not find".
在网上看了下,说是服务器文件夹权限的问题, 确认aspnet或者network service有覆盖文件等相应权限,或确认没有同名jpg文件存在.
经过多次修改,总是跳出"GDI+ 中发生一般性错误".想了想,会不会是服务器不能对本地的图片文件进行GDI操作呢,
试试吧,果然,我先把本地图片传到服务器上后,再对它加水印,一切正常.
我就不理解了,为什么就不能直接操作本地文件呢(虽然问题已解决)?大家有谁知道请帮我解释一下,谢谢....
错误代码如下:
1 public void createImage(string newFileName)
2 {
3 //上传的图片文件
4 string FilePath1 = this.FileUpload1.PostedFile.FileName;
5 //服务器上的水印文件
6 string FilePath2 = Server.MapPath("../uploadFile/member/01.png");
7 //将图片转为Image
8 System.Drawing.Image image1 = System.Drawing.Image.FromFile(FilePath1);
9 System.Drawing.Image image2 = System.Drawing.Image.FromFile(FilePath2);
10 //对上传的图片绘图
11 Graphics g = Graphics.FromImage(image1);
12 g.DrawImage(image2, image1.Width / 8, image1.Height / 8, (image1.Width - image1.Width / 4), (image1.Height - image1.Height / 4));
13 //将加上水印的Image保存为jpg文件在服务器上
14 image1.Save(Server.MapPath("../uploadFile/member/" + newFileName), System.Drawing.Imaging.ImageFormat.Jpeg);
15 //释放资源
16 g.Dispose();
17 image1.Dispose();
18 }
2 {
3 //上传的图片文件
4 string FilePath1 = this.FileUpload1.PostedFile.FileName;
5 //服务器上的水印文件
6 string FilePath2 = Server.MapPath("../uploadFile/member/01.png");
7 //将图片转为Image
8 System.Drawing.Image image1 = System.Drawing.Image.FromFile(FilePath1);
9 System.Drawing.Image image2 = System.Drawing.Image.FromFile(FilePath2);
10 //对上传的图片绘图
11 Graphics g = Graphics.FromImage(image1);
12 g.DrawImage(image2, image1.Width / 8, image1.Height / 8, (image1.Width - image1.Width / 4), (image1.Height - image1.Height / 4));
13 //将加上水印的Image保存为jpg文件在服务器上
14 image1.Save(Server.MapPath("../uploadFile/member/" + newFileName), System.Drawing.Imaging.ImageFormat.Jpeg);
15 //释放资源
16 g.Dispose();
17 image1.Dispose();
18 }
修改后的正常代码:
1 public void createImage(string newFileName)
2 {
3 this.FileUpload1.SaveAs(Server.MapPath("../uploadFile/temp/") + newFileName); //上传到服务器
4 string FilePath1 = Server.MapPath("../uploadFile/temp/") + newFileName; //再取服务器上的文件
5 string FilePath2 = Server.MapPath("../uploadFile/member/01.png");
6
7 System.Drawing.Image image1 = System.Drawing.Image.FromFile(FilePath1);
8 System.Drawing.Image image2 = System.Drawing.Image.FromFile(FilePath2);
9
10 Graphics g = Graphics.FromImage(image1);
11 g.DrawImage(image2, image1.Width / 8, image1.Height / 8, (image1.Width - image1.Width / 4), (image1.Height - image1.Height / 4));
12 image1.Save(Server.MapPath("../uploadFile/member/" + newFileName), System.Drawing.Imaging.ImageFormat.Jpeg);
13 g.Dispose();
14 image1.Dispose();
15 }
2 {
3 this.FileUpload1.SaveAs(Server.MapPath("../uploadFile/temp/") + newFileName); //上传到服务器
4 string FilePath1 = Server.MapPath("../uploadFile/temp/") + newFileName; //再取服务器上的文件
5 string FilePath2 = Server.MapPath("../uploadFile/member/01.png");
6
7 System.Drawing.Image image1 = System.Drawing.Image.FromFile(FilePath1);
8 System.Drawing.Image image2 = System.Drawing.Image.FromFile(FilePath2);
9
10 Graphics g = Graphics.FromImage(image1);
11 g.DrawImage(image2, image1.Width / 8, image1.Height / 8, (image1.Width - image1.Width / 4), (image1.Height - image1.Height / 4));
12 image1.Save(Server.MapPath("../uploadFile/member/" + newFileName), System.Drawing.Imaging.ImageFormat.Jpeg);
13 g.Dispose();
14 image1.Dispose();
15 }