js獲取input上傳文件的文件名和擴展名的方法
- 2019 年 11 月 13 日
- 筆記
使用 js 可以獲取 input 上傳文件的文件名和擴展名,這裡我整理一下具體方法:
1. 使用原生JS獲取:
CSS程式碼:給 div 一個內邊距,按鈕設置樣式。
div{ padding: 5px; } #mybtn { width: 100px; height: 30px; font-size: 18px; background-color: #00a0e9; border: none; text-align: center; color: #FFF; }
HTML程式碼:寫一個input file 按鈕,一個 button 按鈕用來觸發一個事件,一個 div 容器用來放提示資訊。
<div> <input type="file" name="myfile" id="myfile" value=""/> </div> <div> <button id="mybtn">點擊</button> </div> <div id="div"> </div>
JS程式碼:點擊 button 按鈕時觸發事件,如果未選擇任何文件會返回 undefined ,如果已選擇文件 則返迴文件名和擴展名。
<script> //獲取一個上傳文件的擴展名 var myfile = document.getElementById('myfile'); var mybtn = document.getElementById('mybtn'); var div = document.getElementById('div'); mybtn.onclick = function () { //獲取文件上傳文件的文件名和擴展名 if (myfile.files[0] == undefined) { alert('未上傳任何文件!'); } else { //獲取上傳文件的文件名 div.innerHTML= div.innerHTML+'<span style="color:#FF0000;">文件名:' + myfile.files[0].name + '</span><br>'; //獲取上傳文件的擴展名 var filevalue = myfile.value; var index = filevalue.lastIndexOf('.'); div.innerHTML= div.innerHTML+'<span style="color:#FF0000;">擴展名:' + filevalue.substring(index) + '</span>'; } } </script>
測試效果如下圖:
未上傳任何文件:
已選擇文件:
2. 使用 jQuery 獲取:
CSS 和 HTML 部分程式碼沒變,js 程式碼如下:我這次使用的是監聽 input 的 change 事件,button 按鈕可以刪掉。
<script> $(function () { var file = ""; var fileName = ""; var fileExt = ""; $("#myfile").change(function () { //獲取文件的value值 file = $("#myfile").val() //獲取文件名+擴展名 fileName = file.split("\").pop(); //獲取文件名 fileName = fileName.substring(0, fileName.lastIndexOf(".")); //獲取文件的擴展名 fileExt = file.substr(file.lastIndexOf(".")); //清空DIV容器內容 $("#div").html(""); $("#div").append("<p style='color: red'>文件名:"+fileName+"</p>"); $("#div").append("<p style='color: red'>擴展名"+fileExt+"</p>"); }) }); </script>
效果如下圖:
聲明:本文由w3h5原創,轉載請註明出處:《js獲取input上傳文件的文件名和擴展名的方法》 https://www.w3h5.com/post/89.html