Guest User

Untitled

a guest
Oct 21st, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. <html>
  2. <head>
  3. <script type="text/javascript" src="/jquery.min.js"></script>
  4. <title>Mime type checker</title>
  5. <script>
  6. $(function () {
  7. var result = $('div#result');
  8. if (window.FileReader && window.Blob) {
  9. $('span#submit').click(function () {
  10. var files = $('input#file').get(0).files;
  11. if (files.length > 0) {
  12. var file = files[0];
  13. console.log('Loaded file: ' + file.name);
  14. console.log('Blob mime: ' + file.type);
  15.  
  16. var fileReader = new FileReader();
  17. fileReader.onloadend = function (e) {
  18. var arr = (new Uint8Array(e.target.result)).subarray(0, 4);
  19. var header = '';
  20. for (var i = 0; i < arr.length; i++) {
  21. header += arr[i].toString(16);
  22. }
  23. console.log('File header: ' + header);
  24.  
  25. // Check the file signature against known types
  26. var type = 'unknown';
  27. switch (header) {
  28. case '89504e47':
  29. type = 'image/png';
  30. break;
  31. case '47494638':
  32. type = 'image/gif';
  33. break;
  34. case 'ffd8ffe0':
  35. case 'ffd8ffe1':
  36. case 'ffd8ffe2':
  37. type = 'image/jpeg';
  38. break;
  39. case '25504446':
  40. type = 'application/pdf';
  41. break;
  42. }
  43.  
  44. if (file.type !== type) {
  45. result.html('<span style="color: red; ">Mime type detected: ' + type + '. Does not match file extension.</span>');
  46. } else {
  47. result.html('<span style="color: green; ">Mime type detected: ' + type + '. Matches file extension.</span>');
  48. }
  49. };
  50. fileReader.readAsArrayBuffer(file);
  51. }
  52. });
  53. } else {
  54. result.html('<span style="color: red; ">Your browser is not supported. Sorry.</span>');
  55. console.error('FileReader or Blob is not supported by browser.');
  56. }
  57. });
  58. </script>
  59. <style>
  60. .submit {
  61. border: 1px grey solid;
  62. padding: 3px;
  63. position: relative;
  64. top: 10px;
  65. cursor: pointer;
  66. }
  67. </style>
  68. </head>
  69. <body>
  70. Check mime type of your file in one click<br>
  71. <input type="file" id="file"><br>
  72. <div id="result"></div>
  73. <span class="submit" id="submit">Check</span>
  74. </body>
  75. </html>
Add Comment
Please, Sign In to add comment