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