def file_upload():
""" Uploads images dropped on the web editor's markdown box to static/images
and notifies editors by email
"""
upload_folder = 'images'
title = request.form['title']
files = request.files
uploadedFiles = []
if files:
for img_file in files.values():
filename = secure_filename(title + "_" + img_file.filename).lower()
dst_folder = os.path.join(current_app.static_folder, upload_folder)
if is_allowed_image_format(img_file):
try:
img_file.save(os.path.join(dst_folder, filename))
send_from_directory(dst_folder, filename)
uploadedFiles += [url_for("static", filename=os.path.join(upload_folder, filename))]
except Exception as e:
error_msg = u"ERROR during image upload: {}".format(str(e))
logger.error(error_msg)
return json.dumps({'error_msg': error_msg, 'success': False})
elif is_pdf(filename):
from PyPDF2 import PdfFileReader
try:
src_pdf = PdfFileReader(img_file)
filename = os.path.splitext(filename)[0]
num_pages = src_pdf.getNumPages()
for page_num in range(num_pages):
page_png = pdf_page_to_png(src_pdf, page_num)
page_name = u"{filename}_{page_num}.jpg".format(**locals())
page_png.save(filename=os.path.join(dst_folder, page_name))
uploadedFiles += [url_for("static", filename=os.path.join(upload_folder, page_name))]
except Exception as e:
error_msg = u"ERROR during pdf upload: {}".format(str(e))
logger.error(error_msg)
return json.dumps({'error_msg': error_msg, 'success': False})
return json.dumps({'links': uploadedFiles, 'success': True})
评论列表
文章目录