@M-Misha-M
горе-junior, программирую на C#, изучаю .Net

Как отобразить несколько изображений из файловой системы в проекте .Net?

Привет всем, нужна ваша помощь с работой с изображениями в .Net. Вообщем делаю что то типа CRUD операций только с изображениями. Каждому имени соответствует несколько файлов изображений ( фото )58779e84b0724cd19cb7924b322938f9.PNG
Теперь когда мы нажимаем Edit, появляется такая вот форма
948804ed15f745928b816d2905cb42d2.PNG
И как видите отображается название файлов фото которые я загрузил. Все файлы идут в папку Upload в проекте при загрузке, а инфа о них в БД. Так вот вопрос: можно ли вместо название изображений отображать сами изображения???
Вот фрагмент кода , который выводит просто название залитых файлов
@using (Html.BeginForm("Edit", "Support", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Edit Support Request</legend>
        @Html.HiddenFor(model => model.SupportId)
        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.Summary)
        </div>
        <div class="editor-field">
            @Html.TextAreaFor(model => model.Summary)
            @Html.ValidationMessageFor(model => model.Summary)
        </div>
        <div class="editor-label">
            <label>Files:</label>
        </div>
        <div class="editor-field">
            <input type="file" name="file" multiple="multiple" />
            <ul class="attachment">
                @foreach (var item in Model.FileDetails)
                {
                    <li>
                        <a class="title" href="/Support/Download/?p=@(item.Id + item.Extension)&d=@item.FileName">@item.FileName</a>
                        <a href="javascript:void(0);" data-id="@item.Id" class="deleteItem">X</a>
                    </li>
                }
            </ul>
        </div>
        <p>
            <input type="submit" value="Save" />
        </p>


    </fieldset>
  • Вопрос задан
  • 189 просмотров
Решения вопроса 1
Контроллер:
private readonly IApplicationEnvironment _appEnvironment;
public YourController(IApplicationEnvironment appEnvironment)
{
      _appEnvironment = appEnvironment;
}
public ActionResult Create()
{
      YourModel model = new YourModel();
      string path = _appEnvironment.ApplicationBasePath + "\\wwwroot\\Content\\Default";   // получим путь к файловой системе
      model.Photo = ImageToByte(path + "\\Image.png");
}

private byte[] ImageToByte(string path)
{
     Image image = Image.FromFile(path);
     MemoryStream memoryStream = new MemoryStream();
     image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);
     return memoryStream.ToArray();
}

Вьюшка:
@Html.Raw("<img style='width:50px;'  src=\"data:image/jpeg;base64," + Convert.ToBase64String(Model.Photo) + "\" />")
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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