TG-62 upload file (template)

This commit is contained in:
DonRenando 2017-03-28 17:03:12 +02:00
parent 711d0886d3
commit 1bd2369f9a
2 changed files with 37 additions and 30 deletions

View File

@ -1,9 +1,13 @@
import os
from flask import request
from flask_restful import Resource from flask_restful import Resource
from flask_restful.reqparse import RequestParser from flask_restful.reqparse import RequestParser
from app.tools.LibPdf import delete_file
from model import getParam 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): class PdfAPI(Resource):
""" """
@ -16,6 +20,24 @@ class PdfAPI(Resource):
args = parser.parse_args() args = parser.parse_args()
if ".." in 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'])) 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"])

View File

@ -2,6 +2,7 @@ import os
from PyPDF2 import PdfFileReader, PdfFileMerger from PyPDF2 import PdfFileReader, PdfFileMerger
from pdfjinja import PdfJinja from pdfjinja import PdfJinja
from werkzeug.utils import secure_filename
def fusion_fichiers(chemin_merge_pdf, nom_merge_pdf, liste_de_pdf): 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): def allowed_file(filename):
allowed_extensions = "pdf" allowed_extensions = {'pdf'}
return '.' in filename and \ return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in allowed_extensions filename.rsplit('.', 1)[1].lower() in allowed_extensions
def upload_file(): def upload_file(file, upload_folder):
if request.method == 'POST': """
# check if the post request has the file part rep de l'etu avec id
if 'file' not in request.files: :param file:
flash('No file part') :param upload_folder:
return redirect(request.url) :return:
file = request.files['file'] """
# if user does not select file, browser also file.save(secure_filename(os.path.join(upload_folder, file.filename)))
# 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 '''
<!doctype html>
<title>Upload new File</title>
<h1>Upload new File</h1>
<form method=post enctype=multipart/form-data>
<p><input type=file name=file>
<input type=submit value=Upload>
</form>
'''
def delete_file(pdf_path): def delete_file(pdf_path):
if os.path.exists(pdf_path): if os.path.exists(pdf_path):