Сохранить и извлечь изображение из другого проекта в том же решении или в общем каталоге - PullRequest
0 голосов
/ 10 февраля 2019

Я работаю с проектом электронной коммерции.В этом решении у меня есть 2 административная часть проекта и пользовательская часть.проблема в том, что если я храню изображение в админке, оно нормально работает в админ-проекте, как я могу получить к нему доступ из проекта пользовательского интерфейса?или мне нужно создать общий каталог в решении для хранения и получения изображения, я не знаю, что и как делать, пожалуйста, помогите мне с этим.

для сохранения изображения, которым является мой код......

public static string SaveAnImage(HttpPostedFileBase file, string path)
    {
        string fileName = "";
        string vFileName = Guid.NewGuid().ToString();
        string fileExtension = Path.GetExtension(file.FileName)?.ToLower();
        if (fileExtension != null)
        {
            path += vFileName;
            path += fileExtension.ToLower();

            file.SaveAs(path);
            fileName = vFileName + fileExtension.ToLower();
        }
        return fileName;
    }

и восстановите изображение ....

ProductImage = Path.Combine(_mainImagepath , objDataReader["ProductImage"].ToString());

Теперь, как я могу получить его из проекта пользовательского интерфейса ???Спасибо .....

Ответы [ 3 ]

0 голосов
/ 10 февраля 2019

В Razor View вы можете показать его, используя этот код.

<img src="@Url.Content("/imagesfolder/image123.jpg")" alt="Image" >
0 голосов
/ 10 февраля 2019

Это на самом деле два отдельных вопроса:

Как открыть общий доступ к папке в рабочей среде?

Если сайты находятся на одном сервере, вы можете разместить общие изображения практически в любом месте натот же сервер.Если они находятся на разных серверах, вам нужно сопоставить сетевое местоположение на обоих серверах с тем местом, где находятся изображения.В любом случае вы затем создадите виртуальный каталог в IIS на обоих сайтах, указывающий на это общее местоположение.

Как открыть общий доступ к папке в процессе разработки (т. Е. Visual Studio)?

Этонемного сложнее.По сути, вам придется обрабатывать его так же, как в производственной среде, но проблема в том, что IIS Express не так прозрачен, как полный IIS.Я использовал следующий метод в Visual Studio 2012 и 2013, но в последний раз, когда я попробовал его в 2015 году, он больше не работал.Это, возможно, уже исправлено, хотя это было давно.В любом случае, это единственный вариант.

  1. Щелкните правой кнопкой мыши свое решение на панели обозревателя решений и выберите «Добавить»> «Новый веб-сайт» ...
  2. Нажмите «Обзор»... в появившемся окне.
  3. Перейдите на вкладку Локальный IIS.
  4. Найдите первый сайт в списке, для которого вы хотите использовать каталог общих изображений, и щелкните по нему, чтобы выделитьit.
  5. Затем в правом верхнем углу окна щелкните значок, который выглядит как папка со звездочкой на нем.Если вы наведите курсор мыши на секунду, появится сообщение «Создать новый виртуальный каталог».
  6. В поле «Псевдоним: введите», какой должна быть часть пути в вашем приложении.Например, если вы хотите найти изображения в http://localhost:12345/SharedImages,, вы должны ввести SharedImages.Убедитесь, что любой выбранный вами каталог не является действительным существующим каталогом в вашем проекте.
  7. Для «Папка:» перейдите к физическому каталогу, в котором находятся общие изображения на вашем компьютере.
  8. Снимите флажок «Создать приложение IIS».
  9. Нажмите «ОК».
  10. Повторите шаги 4–9 для всех дополнительных сайтов.
  11. Нажмите «Отмена» в предыдущем окне.
  12. Нажмите Отмена еще раз в исходном окне Добавить новый веб-сайт.(На самом деле вы не собираетесь добавлять новый веб-сайт в свое решение. Это единственный способ получить доступ к месту, где вы можете создать этот виртуальный каталог.)

На этом этапе вам следуетвернуться в главное окно Visual Studio.На самом деле вы не заметите никакой разницы в вашем проекте / решении, поскольку все это было сделано в IIS Express.Однако, если вы просматриваете свой веб-сайт и пытаетесь загрузить изображение в виртуальном каталоге, вы сможете увидеть его в своем браузере, а именно:

http://localhost:12345/SharedImages/foo.jpg Если вы видите изображение, всеработает нормально.

0 голосов
/ 10 февраля 2019

Есть несколько способов получить поток файлов с сервера.так что для статических файлов вы можете создать ссылку для скачивания в своих представлениях, используя @Url.Content("yourfilepath"), или создать действие для загрузки потока файлов:

public FileResult GetMyFile()
{
    byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext");
    string fileName = "myfile.ext";
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...