Итак, я создаю приложение 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 г.