[英]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.