2014-12-22 70 views
0

我正在使用文件,但我并不真正了解如何使其工作。来自远程服务器的文件的完整路径

我有一个Web应用程序(C#)位于服务器上和用户使用该应用程序上传文件的一些信息。我让用户从本地机器上传文件(使用HttpPostedFileBase类)的问题,但代码尝试匹配服务器上的相同路径,当然文件在服务器上不存在,这就是为什么它会抛出一个错误说

找不到路径的一部分...

如果用户试图从C:\Users\User1\Documents\File.txt将文件从本地机器上载我怎么可以编写代码,包括整个文件路径包括计算机名称和本地驱动器,如\\ComputerName\c$\Users\User1\Documnets\File.txt

+1

也许我失去了一些东西,但...为什么你需要用户的本地路径的文件呢?您已经声明文件正在上传,因此文件的原始路径现在存储在服务器上是什么? – Kritner

+0

如果您在客户机上使用网页,则应参考FTP或HTTP文件上载协议。最好的问候, –

+0

对不起,我的错,我没有上传文件。我试图将文件保存到服务器。如果我的驱动器映射正确,我没有任何问题,但为了保存文件,我需要知道我从中复制的位置以及我正在复制到的位置。在这种情况下,因为它是客户机,所以我没有看到文件的完整路径以成功上传它。 – MarinaS

回答

7

你不行。客户端和服务器彼此断开连接。这就是网络的工作原理。您无法获取完整的客户端路径,并以任何方式访问服务器。

有很好的理由,最重要的是安全/信任。

+0

如何将文件从客户端的机器保存到服务器比不知道完整路径? – MarinaS

+0

您必须将其保存在服务器上的某个位置,具体取决于您的需要。最简单的方法是自己创建文件路径,然后使用['HttpPostedFileBase.SaveAs'](http://msdn.microsoft.com/zh-cn/library/system.web.httppostedfilebase.saveas(v = vs.110)的.aspx)。 –

+1

我想确切的同样的事情: VAR fileLocation = Path.Combine(Path.GetTempPath()的string.join(Guid.NewGuid()的ToString(),files.FileName)); files.SaveAs(fileLocation); 但它未能保存它说路径的一部分没有找到 – MarinaS