Spaces:
Sleeping
Sleeping
File size: 1,754 Bytes
81f6231 605c260 81f6231 099c748 81f6231 3f83f2b 81f6231 3f83f2b 81f6231 605c260 81f6231 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
from flask import Flask, request, jsonify
from werkzeug.utils import secure_filename
from .parser import parse_promotion_pdf, parse_promotion_excel
from .text_recog import extract_ktp_info
import os
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'tmp'
app.config['ALLOWED_EXTENSIONS'] = {'pdf', 'png', 'jpg', 'jpeg', 'xlsx', 'csv'}
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in app.config['ALLOWED_EXTENSIONS']
def upload_file():
if 'file' not in request.files:
return jsonify({'error': 'No file part'}), 400
file = request.files['file']
if file.filename == '':
return jsonify({'error': 'No selected file'}), 400
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
if not os.path.exists('/tmp'):
os.makedirs('/tmp', exist_ok=True)
filepath = os.path.join('/tmp', filename)
file.save(filepath)
if filename.endswith('.pdf'):
parsed_file = parse_promotion_pdf(filepath)
elif filename.endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff')):
parsed_file = extract_ktp_info(filepath, filename)
elif filename.endswith('.xlsx' or '.csv'):
parsed_file = parse_promotion_excel(filepath, filename)
else:
parsed_file = {
'filename' : filename
}
return jsonify({
'message': 'File uploaded successfully',
'filename': filename,
'path': filepath,
'content' : parsed_file
}), 200
return jsonify({'error': 'File type not allowed'}), 400
|