所以我有一个 HTML 表单,用户可以在其中上传图像。这发布到我的操作中,图像被放入用户 ID 唯一的目录中(如果该目录不存在,则创建该目录)。
自从我大约两个月前实施它以来,它一直工作得很好,从那以后我就再也不用碰它了。最初,我UnauthorizedAccessExceptions
通过进入上传目录的安全设置并授予“所有人”完全控制权来解决这个问题。
出乎意料的是,我再也无法保存图像了。UnauthorizedAccessExceptions
尽管一次又一次地更改文件夹的安全设置以尝试修复它,但我开始再次出现问题。最后阅读有关在 ASP.net 中进行帐户模拟的信息。
所以,现在我没有得到UnauthorizedAccessExceptions
,而是遇到了我的网站认为目录已经存在的问题。
这是我的表单操作的一个片段:
if (Directory.Exists(Path.GetDirectoryName(Server.MapPath("../uploads/" + currentUser.UserId))) == false)
{
Directory.CreateDirectory(Path.GetDirectoryName("../uploads/" + currentUser.UserId));
}
if (Directory.Exists(Path.GetDirectoryName(Server.MapPath("../uploads/" + currentUser.UserId + "/" + newEntry.EntryId))) == false)
{
Directory.CreateDirectory(Path.GetDirectoryName("../uploads/" + currentUser.UserId + "/" + newEntry.EntryId));
}
ImageFile.SaveAs(Server.MapPath("../" + savedFileName));
if 语句中的代码永远不会执行。所以,我删除了它们并简单地尝试:
Directory.CreateDirectory(Path.GetDirectoryName("../uploads/" + currentUser.UserId));
什么都没发生!然后,当需要保存图像时,由于目录不存在而引发异常!谁能告诉我为什么Directory.Exists()
要返回true
,或者为什么Directory.CreateDirectory()
什么都不做?
或者为什么这段代码几个月都没有动过并且运行良好,然后突然决定放弃?
注意:如果我转到文件夹并手动创建目录,则文件保存得很好