talkbackstaging / uploader /uploadapi.py
zsoltapp's picture
Upload 101 files
a987248
from flask import Flask, render_template, request, redirect, url_for
import os
# cors
from flask_cors import CORS, cross_origin
app = Flask(__name__)
cors = CORS(app)
# Set upload folder
UPLOAD_FOLDER = 'uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
# Set allowed file extensions
ALLOWED_EXTENSIONS = {'xlsx', 'csv'}
def allowed_file(filename):
"""Helper function to check if a file has an allowed extension"""
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
# Check if a file was uploaded
if 'file' not in request.files:
return redirect(request.url)
if 'uuid' not in request.form:
return "no uuid"
file = request.files['file']
# Check if file has an allowed extension
if not allowed_file(file.filename):
return 'Invalid file type'
# get uuid from form
uuid = request.form['uuid']
# Save file to upload folder
# if folder with name: uuid does not exist, create it
if not os.path.exists(os.path.join(app.config['UPLOAD_FOLDER'], uuid)):
os.makedirs(os.path.join(app.config['UPLOAD_FOLDER'], uuid))
file.save(os.path.join(app.config['UPLOAD_FOLDER'], uuid, file.filename))
return {"status":"success","filename": file.filename, "uuid": uuid}
return "did nothing..."
# return render_template('upload.html')
@app.route('/clearcache', methods=['POST'])
def clear_cache():
print(request.json)
if request.method == 'POST':
if 'uuid' not in request.json:
return "no uuid"
if 'filename' not in request.json:
return "no filename"
uuid = request.json['uuid']
folder = os.path.join(app.config['UPLOAD_FOLDER'],uuid)
filename = request.json['filename']
if filename in os.listdir(folder):
# os.remove(os.path.join(folder,filename))
# rename this file to filename + _old
os.rename(os.path.join(folder,filename),os.path.join(folder,filename+"_old"))
return {"status":"success"}
return "did nothing..."
# return render_template('upload.html')
if __name__ == '__main__':
app.run(debug=True, port=5100)