Ссылки на изображения с использованием фреймворка Laravel

Кажется, что не существует решения, кроме описанного в вопросе обходного пути. Для дальнейшего использования, если вы хотите выполнить (а не разрешить) обещание p со значением val, где val - другое обещание, а затем просто вызвать функцию разрешения обещаний для p с аргументом val не будет работать должным образом. Это заставило бы p быть «заблокировано» в состоянии val, так что p будет выполняться с значением разрешения val после выполнения val (см. spec ).

Вместо этого оберните val в другой объект и разрешите p с этим объектом:

var resolveP;  // Promise resolution function for p

var p = new Promise(
    function(resolve, reject) {
        resolveP = resolve;
    }
);

function fulfillPwithPromise(val) {  // Fulfills p with a promise val
    resolveP({promise: val});
}

p.then(function(res) {
    // Do something as soon as p is fulfilled...

    return res.promise;
}).then(function(res) {
    // Do something as soon as the second promise is fulfilled...
});

Это решение работает, если вы уже знаете, что val это обещание. Если вы не можете делать какие-либо предположения о типе val, вам кажется, что вам не повезло. Либо вы должны всегда переносить значения разрешения обещания в другой объект, либо вы можете попытаться определить, имеет ли val поле then типа «функция» и обертывает его условно.

Тем не менее, в некоторых случаях поведение по обещанию по умолчанию может фактически иметь желаемый эффект. Поэтому используйте только описанное выше обходное решение, если вы уверены, что хотите выполнить вместо разрешить первое обещание со вторым.

0
задан double-beep 31 March 2019 в 10:37
поделиться

1 ответ

Вы сохранили имя файла с его исходным расширением в базе данных? Если это так, приведенный ниже код должен работать.

<img src="{{ asset('images/avatar/helmet/'.Auth::user()->avatar)}}">

Я рекомендую сохранить файл с его оригинальным расширением, добавив -> getClientOriginalExtension (). Это будет выглядеть так:

  $image = $request->file('imagename');

  if (isset($image))
  {

      $imagename = uniqid() .'-'. $image->getClientOriginalExtension();
      if (!file_exists('Uploads/Media/Slider'))
      {
          mkdir('Uploads/Media/Slider', 0777 , true);
      }
      $image->move('Uploads/Media/Slider',$imagename);
  }else {
      $imagename = 'slider.png';
  }
0
ответ дан livreson ltc 31 March 2019 в 10:37
поделиться
Другие вопросы по тегам:

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