我的网站http://mySite/Uploads/
上有一个文件上传文件夹
对于每个用户,我想创建一个新文件夹并将文件保存到其中。它适用于网站访问者/但我也有一个管理网站。员工应该能够在同一目录上上传文件
Directory.CreateDirectory返回一个错误,它无法处理uri地址。
我正在通过"http://mySite/Uploads/UserId"
。我错了吗?我应该使用其他机制吗?
答案 0 :(得分:0)
我错了吗?
是的,您应该将物理文件夹传递给Directory.CreateDirectory
方法而不是网址。例如:
Directory.CreateDirectory(Server.MapPath("~/uploads/UserId"));
Server.MapPath
方法应返回如下文件夹:c:\inetpub\wwwroot\mysite\uploads\userid
。
答案 1 :(得分:0)
您必须使用相对于系统根目录的路径。您可以使用MapPath
方法执行此操作。
var uploadsRoot = Server.MapPath("~Uploads");
var userUploadFolder = Path.Combine(UploadsRoot, userId.ToString());
Directory.CreateDirecty(userUploadFolder);
答案 2 :(得分:0)
如果有兴趣的话。我们在两个站点的IIS中创建了虚拟文件夹“uploads”。在iis =>中右键点击您的网站添加虚拟文件夹或不知何故,我的iis不是英文。对两个站点都这样做。它是同一文件夹中的完整路径点,所以我可以使用Server.MapPath("~Uploads")
;在管理站点我获得http://adminSite/Uploads/
,在主站点http://mySite/Uploads/
。如果我通过一个地址上传文件,我总是可以通过另一个地址访问它们。