前些時候寫的簡單版測試程式,在表單送出前用 JavaScript 檢查檔案副檔名。當然這只是第一步驗證,在 PHP 端還是要對 Content Type 做一次檢查。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>File Type Validation in JavaScript. ver 0.1</title> </head> <body> <form method="post" enctype="multipart/form-data" onsubmit="return checkAllFile();";> <input class="file-selector" type="file" name="userfile1" size="20"/></br> <input class="file-selector" type="file" name="userfile2" size="20"/></br> <input class="file-selector" type="file" name="userfile3" size="20"/></br> <input class="file-selector" type="file" name="userfile4" size="20"/></br> <input class="file-selector" type="file" name="userfile5" size="20"/></br> <input type="submit" value="upload"/> </form> <script type="text/javascript"> function checkAllFile(){ var node_list = document.getElementsByTagName('input'); var num_of_not_allowed_files = 0; for (var i = 0; i < node_list.length; i++){ var node = node_list[i]; if(node.getAttribute('type') == 'file'){ var type = node.value; console.log(type); switch(type.substring(type.lastIndexOf('.') + 1).toLowerCase()){ case 'gif': case 'jpg': case 'png': //alert("an image"); // Do Nothing. break; default: num_of_not_allowed_files++; break; } } } console.log('num_of_not_allowed_files: ' + num_of_not_allowed_files); if(num_of_not_allowed_files > 0){ alert('檔案格式錯誤,只能上傳圖片哦'); return false; } else return true; } </script> </body> </html>
ps. 這並不是一份最佳化過的程式碼,僅供參考。
Leave a Reply Cancel reply