Как использовать библиотеку Python FileMagic для проверки MIME-типа файла, который находится не в том же каталоге?

1
8

Итак, я создаю приложение Flask, где мне в настоящее время нужно проверить тип MIME файла, чтобы ограничить тип загружаемых файлов (не ограничиваясь расширением файлов). Структура папок выглядит так: Папка ...загрузки ...app.py ...пакеты

В настоящее время я применяю логику к файлу внутри пакетов и импортирую его в app.py. Поэтому при этом я постоянно сталкиваюсь с ошибками.

Это метод загрузки файла

Это метод внутри пакета с использованием библиотеки filemagic

@app.route("/", methods=['POST'])
def upload_file():
    if 'file' not in request.files:
        return jsonify({'error': 'No file part in the request'}), 400
    
    file = request.files['file']
    
    if file.filename == '':
        return jsonify({'error': 'No selected file'}), 400
    
    if file and check_mime(file.filename) and allowed_files(file.filename):
        filename = secure_filename(file.filename)
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        return jsonify({'message': 'File successfully uploaded'}), 200
    
    return jsonify({'error': 'File type not allowed'}), 400
def check_mime(filename):
    path=os.path.join('./uploads',filename)
    mime_type= magic.from_file(path,mime=True) 
    #guess_type() method return the mimetype of the file along with its encoding
    #_ is used to ignore the encoding of the file
    allowed_mimetypes={'application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/pdf','text/plain'}
    return mime_type in allowed_mimetypes
Лукьян
Вопрос задан9 марта 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.