From 1bd2369f9a1b81d81b13dd4655c70132d7b3acf6 Mon Sep 17 00:00:00 2001 From: DonRenando Date: Tue, 28 Mar 2017 17:03:12 +0200 Subject: [PATCH] TG-62 upload file (template) --- backend/app/api/PdfAPI.py | 28 +++++++++++++++++++++++--- backend/app/tools/LibPdf.py | 39 ++++++++++++------------------------- 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/backend/app/api/PdfAPI.py b/backend/app/api/PdfAPI.py index 1171c7f..a1e7105 100644 --- a/backend/app/api/PdfAPI.py +++ b/backend/app/api/PdfAPI.py @@ -1,9 +1,13 @@ +import os + +from flask import request from flask_restful import Resource from flask_restful.reqparse import RequestParser -from app.tools.LibPdf import delete_file from model import getParam -import os +from app.model import getGroup +from app.tools.LibPdf import delete_file, upload_file, allowed_file + class PdfAPI(Resource): """ @@ -16,6 +20,24 @@ class PdfAPI(Resource): args = parser.parse_args() if ".." in args: - return { "msg" : ".. not allowed in path"}, 400 + return {"msg": ".. not allowed in path"}, 400 delete_file(os.path.join(getParam('TEMPLATES_DIRECTORY'), args['templateName'])) + + def post(self): + """ + Upload d'un template + :return: + """ + parser = RequestParser() + parser.add_argument('groupeName', required=True, help="id/name groupe cannot be blank!") + args = parser.parse_args() + + group = getGroup(args['groupe']) + file = request.files['file'] + + if file.filename == '': + return {"message": "Fichier non trouve"}, 400 + + if file and allowed_file(file.filename): + upload_file(file, group["ressources_dir"]) diff --git a/backend/app/tools/LibPdf.py b/backend/app/tools/LibPdf.py index 567953f..03b9a10 100644 --- a/backend/app/tools/LibPdf.py +++ b/backend/app/tools/LibPdf.py @@ -2,6 +2,7 @@ import os from PyPDF2 import PdfFileReader, PdfFileMerger from pdfjinja import PdfJinja +from werkzeug.utils import secure_filename def fusion_fichiers(chemin_merge_pdf, nom_merge_pdf, liste_de_pdf): @@ -47,37 +48,21 @@ def remplir_template(dirname_template, pdf_template, dirname_output_file, pdf_ou def allowed_file(filename): - allowed_extensions = "pdf" + allowed_extensions = {'pdf'} return '.' in filename and \ filename.rsplit('.', 1)[1].lower() in allowed_extensions -def upload_file(): - if request.method == 'POST': - # check if the post request has the file part - if 'file' not in request.files: - flash('No file part') - return redirect(request.url) - file = request.files['file'] - # if user does not select file, browser also - # submit a empty part without filename - if file.filename == '': - flash('No selected file') - return redirect(request.url) - if file and allowed_file(file.filename): - filename = secure_filename(file.filename) - file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) - return redirect(url_for('uploaded_file', - filename=filename)) - return ''' - - Upload new File -

Upload new File

-
-

- -

- ''' +def upload_file(file, upload_folder): + """ + rep de l'etu avec id + :param file: + :param upload_folder: + :return: + """ + file.save(secure_filename(os.path.join(upload_folder, file.filename))) + + def delete_file(pdf_path): if os.path.exists(pdf_path):