質問への追記・修正の依頼でのご返答をふまえて、フロントエンドで使えそうなライブラリを回答します。
まず、今回のように
何らかの汎用的な機能(今回だと、ファイルアイコンのドロップをうけつける。)が実装されてライブラリになっているコンポーネントを探す
というタスクは、仕事のときも趣味で何か作るときでも、ようありますわ。そういうときに、イイのがチャチャッと見つかるような検索ができるというのも、ひとつのスキルやで。
今回だったら、以下のようなワードで検索してみる。
- React ファイル ドラッグ&ドロップ
- React ファイル ドラッグ&ドロップ アップロード
- React files Drag and Drop
- React files Drag and Drop and Upload
それで該当して上位に出てきたライブラリの比較記事とか使ってみた的な記事をざっと流し読みする。そして、それらの記事でオススメされているNodeモジュールのGitHubのレポジトリを見て、スターが何個ついているか、とか、issueでの議論が活発に最近も行われているか、あたりを見ておく。そうするとだいたい候補が絞られてきますわ。
今回の場合は、答えを言ってしまうと、
がええやろ思いますわ。日本語の記事もすぐ見つかります。
それと、YouTubeでも、 react-dropzone で検索すると、色々出てきます。だいたい英語やけど、VSCodeの画面見せながら、ちょっとずつ実装していく系の動画やと英語苦手でもなんとなく内容追えるもんや。
react-dropzoneを使っても、何らかのトリガーでファイルのアップロードを行う部分は自分で書くことになりますが、そのときに上の記事のAWS S3に送るほうの例は参考になるかと思います。hiro_ikeさんの場合は、S3 ではなく自分で用意したバックエンドのファイルアップロードAPIの仕様に合わせて送るということで、ざっくりいうとそこが変わると思えばええかと。
余談ですが、ドロップエリアとアップロード機能をひとまとめにしたものを作ってくれた人もおる。
これも便利そうやけど、その分、使い方を把握するだけでも時間かかりそうやね。とりま以上ですう〜。