繁体   English   中英

在 asp.net core 中访问被拒绝的文件

[英]Access denied file in asp.net core


当我将项目发布到iis并在浏览器上上传图片时,此操作失败并在logger sysytem显示此错误

发生了未处理的异常:访问路径“C:\\Inetpub\\vhosts\\qarbal.com\\back.qarbal.com\\wwwroot\\images\\UserProfile\\pic_50.jpg”被拒绝。System.UnauthorizedAccessException:访问路径“ C:\\Inetpub\\vhosts\\qarbal.com\\back.qarbal.com\\wwwroot\\images\\UserProfile\\pic_50.jpg' 被拒绝。 在 System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)

动作控制器

[HttpPost("[action]")]
public async Task<IActionResult> EditPhoto()
{
    var uploadsRootFolder = Path.Combine(_env.WebRootPath, "images\\UserProfile");
    var files = Request.Form.Files;     
    foreach (var file in files)
    {       
        if (file == null || file.Length == 0)
        {
            continue;
        }
        var filePath = Path.Combine(uploadsRootFolder, queryModel.Name  + files[0].FileName);
        using (var fileStream = new FileStream(filePath, FileMode.Create))
        {
            await file.CopyToAsync(fileStream).ConfigureAwait(false);
        }
    }
    return Json("ok");  
}

startup.cs

public void Configure(ILoggerFactory loggerFactory, IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseStaticFiles();
}

如何解决这个异常?

右键单击wwwroot文件夹 -> 属性 -> 安全选项卡 -> 单击Edit按钮 -> 输入IIS AppPool\\DefaultAppPool用户 -> 单击Check names -> 确定 -> 然后给它Write permission

好好工作...

string fileName = file_name+".pdf";

           string files = System.IO.Path.Combine("pdf/") + fileName;
            if (!System.IO.File.Exists(files))
            {
                return RedirectToAction("index", new { message = "File Not Found" });

            }
            else
            {

                byte[] fileBytes = System.IO.File.ReadAllBytes(files);
                return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, files);

            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM