[JQuery] アップロードしたときにファイルの名前を取得する
はじめに
inputタグのファイルアップロードの見た目って一辺倒で味気ないなと思ったので自作で作ってみることにしました。
最終的にはこんな感じになります
FontAwesomeを使ってアレンジしてみました。
アイコンの部分を押すとファイルを画像を選択してアップロードします、そしてアップロードした後にファイル名を表示させます。
本題
結論以下のようなコードで実装できます。
<span id ="push-image"></span>
<input type="file" class="image" id="upload_file" style="display: none">
<label class="image" for="upload_file" >
<i class="far fa-image mx-3" aria-hidden="true"></i>
</label>
<script>
$(document).on('change', '.image',function(){
if ($('.image').prop("files")[0] == null){
$('#push-image').text("")
}else{
$('#push-image').append($('.image').prop("files")[0].name);
}
});
</script>
inputタグのstyleをdisplay: none
にすることで最初の画像の部分は表示されなくなります。その上でlabelタグを使ってinputと連携しつつアイコン部分を表示しています。
そしてファイルを選択したときにScriptタグの中が実行されて名前を取得して表示することができます。
以上で実装できました!
もっと効率の良い方法などがあればコメントいただければ幸いです
参考
Author And Source
この問題について([JQuery] アップロードしたときにファイルの名前を取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/Jackson123/items/57c529cbb8a20f4c98a4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .