【问题标题】:Full path of the file from the remote server来自远程服务器的文件的完整路径
【发布时间】:2014-12-22 20:21:03
【问题描述】:

我正在处理文件,但我真的不明白如何使它工作。

我有一个位于服务器上的 Web 应用程序 (c#),用户使用此应用程序从文件上传一些信息。我遇到的问题是用户从他们的本地机器上传文件(使用HttpPostedFileBase 类),但代码试图匹配服务器上的相同路径,当然服务器上不存在该文件,这就是它的原因抛出一个错误提示

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

如果用户试图从他们的本地计算机上从C:\Users\User1\Documents\File.txt 上传文件,我该如何编写代码以包含文件的整个路径,包括计算机名称和本地驱动器,例如\\ComputerName\c$\Users\User1\Documnets\File.txt

【问题讨论】:

  • 也许我遗漏了一些东西,但是......为什么你需要用户的本地文件路径?您已经声明文件正在上传,那么文件的原始路径现在存储在服务器上有什么关系?
  • 如果您在客户端机器上使用网页,您应该参考 FTP 或 HTTP 文件上传协议。最好的问候,
  • 对不起,我的错,我没有上传文件。我正在尝试将文件保存到服务器。如果我的驱动器映射正确,我没有任何问题,但要保存文件,我需要知道我从中复制它的位置以及我要复制到的位置。在这种情况下,因为它是客户端的机器,所以我看不到文件的完整路径以成功上传。
  • 那么\\ComputerName\c$实际上在服务器上?还是在客户端?
  • Patrick,我想从我的服务器访问 \\ComputerName\c$,所以在这种情况下 ComputerName 应该是客户端的机器

标签: c# .net file mapped-drive httppostedfilebase


【解决方案1】:

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

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

【讨论】:

  • 在不知道完整路径的情况下,如何将文件从客户端机器保存到服务器?
  • 您必须将其保存在服务器上的某个位置,具体取决于您的需要。最简单的方法是自己创建文件路径,然后使用HttpPostedFileBase.SaveAs保存。
  • 我正在尝试完全相同的事情: var fileLocation = Path.Combine(Path.GetTempPath(), string.Join(Guid.NewGuid().ToString(), files.FileName));文件。另存为(文件位置);但是它没有保存它说找不到路径的一部分
  • 还要注意string.Join的第一个参数是分隔符。
  • fileLocation 通常类似于 C:\Users\UserName\Documents\FileName
猜你喜欢
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
  • 2019-01-31
  • 2015-08-12
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多