Python: Проверьте, является ли загруженный файл jpg

вы можете попробовать, как показано ниже, используя агрегатную функцию

select *, MATCH(Description) AGAINST('Acifree -O 10ml' IN NATURAL LANGUAGE MODE)
as score
from tutorial 
where MATCH(Description) AGAINST('Acifree -O 10ml' IN NATURAL LANGUAGE MODE)
and MATCH(Description) AGAINST('Acifree -O 10ml' IN NATURAL LANGUAGE MODE)=
(select  max(MATCH(Description) AGAINST('Acifree -O 10ml' IN NATURAL LANGUAGE MODE))
from tutorial
)

демо-ссылка

выход

id  description score
1   Acifree -O 10ml 0.15835624933242798
2   Acifree O 10ml  0.15835624933242798

Когда MATCH() используется в предложении WHERE, возвращаемые строки автоматически сортируются с наивысшей релевантностью. Значения релевантности являются неотрицательными числами с плавающей точкой. Нулевая релевантность означает отсутствие сходства. Релевантность вычисляется на основе -

  • количества слов в строке
  • количества уникальных слов в этой строке
  • общего количества слов в сборнике
  • количество документов (строк), которые содержат определенное слово

Поскольку вам нужно самое лучшее, поэтому я взял максимальный балл

15
задан Federico Elles 5 November 2008 в 21:00
поделиться

3 ответа

При необходимости в больше, чем рассмотрение расширения один путь состоял бы в том, чтобы прочитать заголовок JPEG и проверить, что это соответствует допустимым данным. Формат для этого:

Start Marker  | JFIF Marker | Header Length | Identifier
0xff, 0xd8    | 0xff, 0xe0  |    2-bytes    | "JFIF\0"

, таким образом, быстрое устройство распознавания было бы:

def is_jpg(filename):
    data = open(filename,'rb').read(11)
    if data[:4] != '\xff\xd8\xff\xe0': return False
    if data[6:] != 'JFIF\0': return False
    return True

Однако это не поймает неправильных данных в теле. Если Вы хотите более устойчивую проверку, Вы могли бы попытаться загрузить ее PIL. например:

from PIL import Image
def is_jpg(filename):
    try:
        i=Image.open(filename)
        return i.format =='JPEG'
    except IOError:
        return False
36
ответ дан 30 November 2019 в 23:53
поделиться

Используйте PIL. Если это может открыть файл, это - изображение.

Из учебного руководства...

>>> import Image
>>> im = Image.open("lena.ppm")
>>> print im.format, im.size, im.mode
0
ответ дан 30 November 2019 в 23:53
поделиться

Путь jQuery:

Ознакомьтесь с jQueryUI аддонами перетаскиваемыми и удаленными .

Буквально сотнями часов было потрачено на фреймворк jQuery, чтобы сделать такие сложные задачи почти тривиальными. Воспользуйтесь усилиями команды jQuery по упрощению программирования многофункциональных кросс-браузерных приложений для всех нас;)

Путь Чака Норриса:

Если вы настаиваете на том, чтобы попробовать это с необработанным javascript. Вы захотите сделать несколько вещей. Во-первых, программно установить для всех перетаскиваемых элементов относительное / абсолютное позиционирование. Если вы щелкнете по определенному элементу, заставьте его верхние / левые значения в CSS отражать изменения, внесенные осью x, y мыши, пока щелчок не будет отпущен. Кроме того, вы захотите обновить z-индекс каждого перетаскиваемого объекта, когда он ' в шаблоне Mako:

${h.form(h.url_for(action="save_image"), multipart=True)}
Upload file: ${h.file("upload_file")} <br />
${h.submit("Submit", "Submit")}
${h.end_form()}

в контроллере загрузки:

def save_image(self):
    upload_file = request.POST["upload_file"]
    image_type = imghdr.what(upload_file.filename, upload_file.value)
    if not image_type:
        return "error"
    else:
        return image_type
34
ответ дан 30 November 2019 в 23:53
поделиться
Другие вопросы по тегам:

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