【问题标题】:upload file to the network mapped drive in c#将文件上传到c#中的网络映射驱动器
【发布时间】:2013-01-15 10:55:38
【问题描述】:

我正在使用 c# asp.net mvc 3 和实体框架将文件上传到映射为 Z 驱动器的网络驱动器。我有以下用于确定文件路径的 c# 代码:

var path = Path.Combine(Z:/upload/catone/", fileName);
aries.SaveAs(path);

我使用的是 windows server 2008 和 IIS 7。我还检查了网络驱动器上传文件夹的安全性,并且对每个用户都有访问权限。如果我将文件路径更改为本地驱动器,它工作正常。但是在上传到网络驱动器(Z:/)时显示以下错误。

Could not find a part of the path 
'Z:\upload\catone\_2013011504265221N_todaily.wav'.

【问题讨论】:

  • 你能在 Windows 资源管理器中打开 Z:\ 吗?
  • 是的,我可以在 Windows 资源管理器中打开 z:\
  • 当你使用 Path.Combine 时,添加 Path.Combine(Server.MapPath("~/upload/catone/"),filename);
  • 您确实应该为您的操作系统使用适当的路径分隔符 \。
  • 映射的网络驱动器是用户特定的。 Z:\ 可能不是您运行网站的用户帐户。因此它不能识别 z:\

标签: c# asp.net-mvc-3 entity-framework


【解决方案1】:

您的代码在 IIS 下运行,因此以可能无法访问该网络驱动器的 IIS 用户帐户的访问权限运行。

例如,您可以尝试以您的身份运行应用程序池,以排除此问题,或授予组 IIS_IUSRS 对该文件夹的完全访问权限。

【讨论】:

  • 我已经按照你说的做了。但我无法向 IIS_IUSRS 添加权限。当我在文件夹的安全选项下添加该用户并授予完全控制访问权限时。它显示在组或用户名中,但是当我单击应用或确定按钮时,它会从该组列表中消失。发生了什么,可能是什么问题。
  • @CodeManiac - 这可能是因为您自己无权授予该远程文件夹的权限。尝试另一种方法,模仿。
【解决方案2】:

首先将文件保存在本地机器中, 比使用 file.copy(Source, Destination, true) 方法将文件保存到网络驱动器后。

试试对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    相关资源
    最近更新 更多