0

我的网站上有一个用于文件上传的文件夹,http://mySite/Uploads/ 我想为每个用户创建一个新文件夹并将文件保存到其中。它适用于网站访问者/但我也有一个管理网站。员工应该能够在同一目录中上传文件。
Directory.CreateDirectory 返回一个错误,它无法处理 uri 地址。我路过"http://mySite/Uploads/UserId"。我错了吗?我应该使用其他机制吗?

4

3 回答 3

0

我错了吗?

是的,您应该将物理文件夹Directory.CreateDirectory而不是 url 传递给该方法。例如:

Directory.CreateDirectory(Server.MapPath("~/uploads/UserId"));

Server.MapPath方法应该返回一个像这样的文件夹:c:\inetpub\wwwroot\mysite\uploads\userid.

于 2013-03-17T17:53:35.633 回答
0

您必须使用相对于系统根目录的路径。你可以用这个MapPath方法做到这一点。

var uploadsRoot = Server.MapPath("~Uploads");
var userUploadFolder = Path.Combine(UploadsRoot, userId.ToString());
Directory.CreateDirecty(userUploadFolder);
于 2013-03-17T17:54:19.080 回答
0

如果有人感兴趣。我们在两个站点的 IIS 中创建了虚拟文件夹“上传”。在 iis 中右键单击您的站点 => 添加虚拟文件夹,或者不知何故,我的 iis 不是英文的。对两个站点都这样做。它的完整路径指向同一个文件夹,所以我可以使用Server.MapPath("~Uploads");在管理站点中我得到http://adminSite/Uploads/了,在主站点中它是http://mySite/Uploads/。如果我通过一个地址上传文件,我总是可以通过另一个地址访问它们。

于 2014-01-10T14:06:33.997 回答