将文件保存到本地文件夹 - 拒绝访问该路径

时间:2016-08-15 19:42:31

标签: c#

更新 - 我的问题的答案实际上并不是真正的许可问题。

当我意识到我确实试图不正确地保存文件时,我最终解决了我的问题。我的代码段httpPostedFile.SaveAs(fileSavePath) 错误

最终要做的是尝试将文件保存到与路径名称exact相同的路径。为了解决这个问题,我只是将文件名附加到fileSavePath,然后成功保存了文件。

所以现在这段代码看起来像这样:

var extension = Path.GetExtension(httpPostedFile.FileName).toLower();
if (extension == ".jpg" || extension == ".jpeg" || extension == ".png")
{
    var fileName = Path.GetRandomFileName() + extension;
    var fileSavePath = serverPath + path + fileName;

    httpPostedFile.SaveAs(fileSavePath);
}

P.S。 - 如果你可以投票让这个问题重新开放,这样我就可以提供这个可以理解的答案,因为这个帖子应该是一个副本,实际上并没有解决我的问题。

原始帖子

我尝试做的事情相当简单,但是我对此异常感到困惑:

  

类型' System.UnauthorizedAccessException'的例外情况发生在mscorlib.dll中但未在用户代码中处理

     

其他信息:访问路径' C:\ Users \ TCT-User-2 \ Source \ Repos \ Shift_Production \ Shift.Web \ Content \ images \ UserAvatars'被拒绝。

我已经在SO上查看了其他一些类似的问题,他们都建议检查以确保文件夹或文件不是只读的。到目前为止,我可以告诉他们不是,但我仍然遇到这个问题。也许这是我在我的代码中做错的其他事情?

我基本上只是将图片上传到我的Web API项目,然后尝试将其本地保存到服务器。

以下是我必须做的事情:

[Route("Account/Avatar")]
[HttpPost]
public IHttpActionResult UploadAvatar()
{
    string serverPath = _appSettingService.GetApplicationSettings().ServerPath;
    string imagePath = _appSettingService.GetApplicationSettings().AppUserProfileImagePath;

    if (HttpContext.Current.Request.Files.AllKeys.Any())
    {
        var httpPostedFile = HttpContext.Current.Request.Files["file"];

        if (httpPostedFile != null)
        {
            var fileSavePath = serverPath + imagePath;
            httpPostedFile.SaveAs(fileSavePath);
        }
    }

    return Ok();
}

0 个答案:

没有答案