🏙️

[Javascript] 画像のURLから拡張子を取得

2023/05/05に公開1

?hogehoge=huga&aaa=bbb
など、URLにパラメーターがついているものにも対応

export const getFileExtension = (imageUrl: string) => {
  const popUrl = imageUrl.split('.').pop();

  if (!popUrl) throw Error('拡張子が取得できません, imageUrlが不正です');

  const fileExtension = popUrl.split('?')[0];
  return fileExtension;
};

ex:

const imageUrl = "https://storage.googleapis.com/zenn-user-upload/avatar/d6fe35e537.jpeg"

const extension = getFileExtension(imageUrl)
// 結果: jpeg

Discussion

nap5nap5

to-vfileライブラリquery-stringライブラリを使って拡張子を取り出す処理のデモを作ってみました。

demo code.

https://codesandbox.io/p/sandbox/some-7vhhbe?file=%2FREADME.md

api route側で実装しています。

import type { NextApiRequest, NextApiResponse } from "next";
import { toVFile } from "to-vfile";

import queryString from "query-string";

export default function handler(req: NextApiRequest, res: NextApiResponse) {
  const demoURL =
    "https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg?20070224000419&hogehoge=huga&aaa=bbb";
  const { url, query } = queryString.parseUrl(demoURL);
  const vFile = toVFile(url);
  res.status(200).json({ extname: vFile.extname?.slice(1), query, url });
}

簡単ですが、以上です。