Простая форма загрузки
<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>
Для этого вам нужно получить тип интернет-медиа для файла, разделить его на / символ и проверить, начинается ли он с аудио, видео, изображения.
Вот пример кода:
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")
ПРИМЕЧАНИЕ. Этот метод предполагает тип файла по его расширению и не открывает фактический файл, он основан только на расширение файла
Существует еще один метод, основанный не на расширении файла, а на его содержимом с использованием библиотеки типов носителей 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.