JS - 使用 instanceof 显示图像或视频?
JS - Display either image or video with instanceof?
我正在获取这样的 cloudinary image/video ID:
<?php echo cloudinary_url($_upload->getPublicId()); ?>
这给出了一个 URL 像:
http://res.cloudinary.com/dviiu412p/image/upload/v1/campaigns/1/jfle7ilxkyfmj9mjggwa
然后将其渲染为图像或视频,如下所示:
<img class="lazy-load"
src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
data-src="<?php echo cloudinary_url($_upload->getPublicId()); ?>" />
<video class="lazy-load" controls>
<source data-src="<?php echo cloudinary_url($_upload->getPublicId(), array("resource_type"=>video, "height"=>230, "width"=>340, "format"=>webm)); ?>" type="video/webm">
</video>
问题是我只想提供图片或视频(以用户上传的为准)。有什么办法可以做到这一点?我在想 instanceof 可能能够做到这一点,但我以前从未使用过它。任何帮助将不胜感激
假设 $_upload
的来源是上传响应,那么您也有 resource_type
值。您需要 resource_type
的值和 public ID 来区分资源(图像、视频或原始文件)。然后您可以使用 switch-case 块来生成正确的标签。
例如,
<!-- language: lang-php -->
switch ($result["resource_type"]) {
case "image":
// generate image tag
break;
case "video":
// generate video tag
break;
}
我正在获取这样的 cloudinary image/video ID:
<?php echo cloudinary_url($_upload->getPublicId()); ?>
这给出了一个 URL 像: http://res.cloudinary.com/dviiu412p/image/upload/v1/campaigns/1/jfle7ilxkyfmj9mjggwa
然后将其渲染为图像或视频,如下所示:
<img class="lazy-load"
src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
data-src="<?php echo cloudinary_url($_upload->getPublicId()); ?>" />
<video class="lazy-load" controls>
<source data-src="<?php echo cloudinary_url($_upload->getPublicId(), array("resource_type"=>video, "height"=>230, "width"=>340, "format"=>webm)); ?>" type="video/webm">
</video>
问题是我只想提供图片或视频(以用户上传的为准)。有什么办法可以做到这一点?我在想 instanceof 可能能够做到这一点,但我以前从未使用过它。任何帮助将不胜感激
假设 $_upload
的来源是上传响应,那么您也有 resource_type
值。您需要 resource_type
的值和 public ID 来区分资源(图像、视频或原始文件)。然后您可以使用 switch-case 块来生成正确的标签。
例如,
<!-- language: lang-php -->
switch ($result["resource_type"]) {
case "image":
// generate image tag
break;
case "video":
// generate video tag
break;
}