2011-01-05 56 views
1

Ussualy我不写信给论坛,只是读我需要的信息。 这次我遇到了很大的问题,我需要专家的帮助。在GDI +,PNG图像到UNC中发生了一般性错误

我想将图片从图片框保存到文件。

它的工作原理,当我使用

Image.Save("X:\\Files\\logo.png"); 

但我需要的图像保存到UNC位置。 所以创建UNC从X:\文件

当我尝试图像保存为

Image.Save("\\\\\PC\\Files\\logo.png"); 

我变得愚蠢GDI +错误,没有任何信息..

我尝试使用的MemoryStream保存它,没有什么是解决.. 我想它4小时,并没有成功..

如果我映射网络驱动器\\ PC \ files驱动器盘符可以说L:\ 然后保存图像为

Image.Save("L:\\logo.png"); // it works ! 

确定什么是你的孩子?再次..

Image.Save("X:\\Files\\logo.png");   // WORKS 
Image.Save("\\\\PC\\Files\\logo.png"); // GDI+ ERROR 
Image.Save("L:\\logo.png"); // DOES THE JOB (it is network drive from \\pc\files) 

好吧,现在你会问我在共享文件夹上创建了什么perrmisions。 我加了用户大家都并设置写权限,读&执行。

问题是,实际上我想将映像保存到NAS驱动器,所以我不确定它具有什么Sabma安全权限(每个人,来宾,不知道)还是换句话说它不像点击那么简单共享文件夹并播放权限..

我该如何解决这个bug的实现?我尝试过Image.Clone(),MemoryStrean和所有与Google Uncle一起发现的东西,但没有做任何工作,我认为这个问题不是无法访问的Image,但它与UNC位置的权限有关,但只是不知道为什么它可以工作,如果我创建网络驱动器没有特殊的用户登录..我只是不能说客户创建网络驱动器它必须与UNC路径一起工作!

+1

'\\\\\ PC \\ Files \\ logo.png'在开头有一个'\'太多了。 – Gabe 2011-01-05 20:07:32

+0

您使用的是'GDI +',还是来自.NET的'Image'类? – 2011-01-05 20:33:22

回答

0

我说你刚才算错的反斜杠 - 应该有4,而不是5.尝试:

Image.Save("\\\\PC\\Files\\logo.png"); 
0

谢谢你马克对此事发表评论。我没有5个反斜杠,但我没有更多的东西傻...

TextBox1.Text = "\\\\\\\\PC\\Files"; // through GUI I add "\\\\PC\Files" 

然后

string path = TextBox1.Text;  
Image.Save(path + "\\" filename"); 

,你可以在自身路径中的字符串是 “\\\\ PC \文件”!错误! :=) 它必须是\\这样的解决方案是

TextBox1.Text="\\\\PC\\Files"; // or if I add this string by GUI "\\PC\Files" 

而且东西后面我愚蠢的输入文本框。

if (path.StartsWith("\\\\\\\\") || path.Contains(":")) 
{ 
    // Problem was that in TextBox were really 4 backslashes so it jumps here 
    image.Save(path,ImageFormat.Png); 
    // and because string started as "\\\\" it throws GDI+ error 
} 
else 
{ 
    string path2= Directory.GetCurrentDirectory()+"\\"+path; 
    image.Save(path2, System.Drawing.Imaging.ImageFormat.Png); 
} 

是啊,我是个白痴:=)

我做了修复,这是它的方式应该是:我很抱歉,我滥发计算器=) 。

0

我认为这不是一个代码问题,它是由于安装了组件,我也遇到了同样的问题,并在普通服务器上传后自行解决。

相关问题