Обратитесь к изображению в новом окне, используя путь Dynami c - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь отобразить изображение с динамическим c path.

в компонент. html У меня есть:

<span (click)='showFile()'>Consult</span>

in component.ts У меня есть:

showFile()
{

    var req= new XMLHttpRequest();
    req.open('GET', 'http://localhost:6227/api/auth/users/' + this.usrId, false);
    req.send(null);
    this.connectedUser= JSON.parse(req.responseText);

    // let path = '../assets/upload/semone.jpg';     // Static way     (1)
       let path = this.connectedUser.pathPic;        // Dynamic way    (2)

    this.http.get(path, {observe: 'response', responseType: 'blob'}).pipe(map(res =>
    {
        return new Blob([res.body], {type: res.headers.get('Content-Type')});
    })).subscribe(hi =>
    {
         const xx = URL.createObjectURL(hi);
         window.open(xx);
    });
}

Используя способ Stati c (1) , я могу показать свою фотографию.

Но я ничего не получил, когда использовал Dynami c way (2) , зная, что path имеет то же значение, что и ../assets/upload/semone.jpg

Я получил это исключение

ОШИБКА {…} ошибка: Blob {размер: 192, тип: "text / html"} заголовки: Object {normalizedNames: Map (0), lazyUpdate: null, lazyInit: lazyInit ()} сообщение: «Http-ответ об ошибке для http://localhost: 4300 / assets / upload / semone.jpg : 404 не найден» name: «HttpErrorResponse» ok : ложное состояние: 404 statusText: "Not Found" url: "http://localhost: 4300 / assets / upload / semone.jpg ": {…}

Если я закрою терминал node.js и перезапущу его с помощью команды ng serve, я могу показать изображение с Dynami * 10 48 * путь

Есть ли у вас какие-либо идеи по поводу решения этой проблемы? Большое спасибо.

1 Ответ

0 голосов
/ 30 марта 2020

Использование папки ресурсов сделано для использования c, в случае Dynami c это не решение, потому что ng serve загружает приложение в память, поэтому самые новые добавленные элементы, скажем, image, pdf, .. . не может быть загружен в текущем скомпилированном приложении.

Обходной путь ссылается на путь, полученный из rest api, например http://localhost:6227/api/auth/files/img1.jpg

Hope To Help.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...