Проверьте, является ли тип файла мультимедийным файлом?

Простая форма загрузки

 <script>
   //form Submit
   $("form").submit(function(evt){	 
      evt.preventDefault();
      var formData = new FormData($(this)[0]);
   $.ajax({
       url: 'fileUpload',
       type: 'POST',
       data: formData,
       async: false,
       cache: false,
       contentType: false,
       enctype: 'multipart/form-data',
       processData: false,
       success: function (response) {
         alert(response);
       }
   });
   return false;
 });
</script>
<!--Upload Form-->
<form>
  <table>
    <tr>
      <td colspan="2">File Upload</td>
    </tr>
    <tr>
      <th>Select File </th>
      <td><input id="csv" name="csv" type="file" /></td>
    </tr>
    <tr>
      <td colspan="2">
        <input type="submit" value="submit"/> 
      </td>
    </tr>
  </table>
</form>

3
задан BruceWayne 22 March 2019 в 21:22
поделиться

2 ответа

Для этого вам нужно получить тип интернет-медиа для файла, разделить его на / символ и проверить, начинается ли он с аудио, видео, изображения.

Вот пример кода:

import mimetypes
mimetypes.init()

mimestart = mimetypes.guess_type("test.mp3")[0]

if mimestart != None:
    mimestart = mimestart.split('/')[0]

    if mimestart == 'audio' or mimestart == 'video' or mimestart == 'image':
        print("media types")

ПРИМЕЧАНИЕ. Этот метод предполагает тип файла по его расширению и не открывает фактический файл, он основан только на расширение файла

0
ответ дан Cpp Forever 22 March 2019 в 21:22
поделиться

Существует еще один метод, основанный не на расширении файла, а на его содержимом с использованием библиотеки типов носителей pypi.org/project/python-libmagic :

Пример кода для этой библиотеки:

import magic

magic = magic.Magic()
mimestart = magic.from_file("test.mp3").split('/')[0]

if mimestart == 'audio' or mimestart == 'video' or mimestart == 'image':
    print("media types")

ПРИМЕЧАНИЕ: для использования этого примера кода вам необходимо установить Python-libmagic trough pip.

0
ответ дан Cpp Forever 22 March 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: