Задать вопрос
@laravel_creative_3103

Как правильно сохранять файл?

Как правильно сохранять файл?
Исходный код
public string UploadFile(IFormFile model)
        {
            if (model.Length > 0)
            {
                try
                {
                    if (!Directory.Exists(environment.WebRootPath + "\\Images\\"))
                    {
                        Directory.CreateDirectory(environment.WebRootPath + "\\Images\\");
                    }

                    using (FileStream fileStream = System.IO.File.Create(environment.WebRootPath + "\\Images\\" + model.FileName))
                    {
                        model.CopyTo(fileStream);
                        fileStream.Flush();
                        return httpContext.HttpContext.Request.Host.Value.ToString() + "\\Images\\" + model.FileName;
                    }
                }
                catch (Exception ex)
                {

                    return ex.ToString();
                }
            }
            else
            {
                throw new Exception("Upload Files");
            }
        }


Когда я работал локально, все работало, и все файлы сохранялись в:
"localhost:7777\\Images\\Adidas-hoodie.png"
и я мог его читать

Но После сборки проекта и загрузки в виртуалку в ubuntu, он некорректно сохраняет:
"System.UnauthorizedAccessException: Access to the path '/var/www/publish/wwwroot\\Images\\' is denied.\n ---> System.IO.IOException: Permission denied\n   --- End of inner exception stack trace ---\n   at System.IO.FileSystem.CreateDirectory(String fullPath, UnixFileMode unixCreateMode)\n   at System.IO.Directory.CreateDirectory(String path)\n   at TritonBack.Service.PluginService.UploadFile(IFormFile model)",

Как с этим справиться корректно?
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
freeExec
@freeExec
Участник OpenStreetMap
В том, что у вебсервера нет прав на запись в ту директорию.
Ответ написан
@Drno
Веб серверу права на папку выдай
Ответ написан
Комментировать
yarosroman
@yarosroman
C# the best
chmod a=rw /var/www/publish/wwwroot/Images
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы