将文件上传到服务器.Net

时间:2015-04-21 01:09:36

标签: c# winforms

我正在使用C#.net,我正在尝试将文件上传到我的服务器。我没有使用asp .net。

我跟着This Question,它似乎对我不起作用。在旁注中,这个问题是在2008年写的。

我正在使用上面问题中显示的代码:

File.Copy("zQn69PZUx.png", "\\\\198.57.247.152\\~shiro\\public_html\\new");
//tried this also
File.Copy("zQn69PZUx.png", "\\\\198.57.247.152\\~shiro\\new");

我得到的错误:

An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll
Additional information: The network path was not found.

我还尝试使用我的域名并使用浏览器中显示的路径,但没有http://,因为它抱怨格式,说不接受,如下所示:domain-name.com\\new,结果仍然有同样的错误。

任何想法我可能做错了,或者有一个更好的解决方案如何将文件上传到服务器?您可以在此处看到http://198.57.247.152/~shiro/new/路径存在。

2 个答案:

答案 0 :(得分:3)

路径 \\ 198.57.247.152 \ ~shiro \ new 是Microsoft称之为Uniform Naming Convention (UNC)的路径。此类资源仅在启用了NetBIOS的网络上可用;本质上是本地网络问题是File.Copy仅在您可以在网络中访问它时才有效 - 因为这是一个远程服务器,它将无法找到该服务器,从而导致The network path was not found异常。 / p>

http://198.57.247.152/~shiro/new/ 遵循<scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]的语法,即Uniform resource locator (URL)Hypertext Transfer Protocol (http)资源通常由浏览器访问。

您可以通过使用FTP将文件上传到服务器来解决此问题:

using (WebClient client = new WebClient())
{
     client.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
     client.UploadFile("ftp://ftpserver.com/targetpath", "localfilepath");
}

有效的目标路径如下:ftp://localhost/samplefile.txt 并且本地文件路径应该是完全限定的文件路径。

答案 1 :(得分:0)

您可以使用Peter Luu的答案代码上传文件。但首先你应该有权访问它。

要将文件上传到远程服务器,您应该是其用户并且应该有密码。它不是您用于登录Hostgator控制面板的密码。登录Hostgator帐户后,会有一个选项,如 FTP ,您可以在其中设置FTP用户帐户。在那里,您可以指定用户名和密码,并且必须将其应用于上传代码..

要检查UserName和Password是否有效,请打开MyComputer,然后在地址栏中键入FTP路径(将以“ftp://”开头)。弹出一个Dialog,要求输入UserName和Password(如果路径有效)。如果您进入,请从那里查看文件并将文件复制到资源管理器窗口,然后上传代码将起作用

enter image description here

如果要获取适用的路径,请打开Windows资源管理器,然后键入 ftp://your_domain_name 。应用用户名和密码,浏览所需的路径,从地址栏复制并将其添加到代码中。