améliorer le upload des docs
This commit is contained in:
@@ -269,30 +269,40 @@ def upload_doc(request):
|
||||
if 'form.submitted' in request.params:
|
||||
# récupère le fichier lui-même
|
||||
input_file = request.POST['filename'].file
|
||||
input_name = request.POST['filename'].filename # récupère son nom
|
||||
input_ext = input_name.split('.')[-1] # récupère son extension
|
||||
|
||||
# controler l'extension
|
||||
ext_allowed = ['jpeg','jpg','png','pdf']
|
||||
if input_ext.lower() not in ext_allowed :
|
||||
request.session.flash("Le format de ce fichier n'est pas valide. Téléchargement impossible.", 'warning')
|
||||
else:
|
||||
# récupère le nom du fichier et ajouter le no de dossier
|
||||
filename = '%s-DD%s-%s' % (societe, nochantier, request.POST['filename'].filename)
|
||||
|
||||
file_path = os.path.join('%s/%s' % (request.registry.settings['mondumas.devfac_dir'],societe), filename)
|
||||
# We first write to a temporary file to prevent incomplete files
|
||||
temp_file_path = file_path + '~'
|
||||
|
||||
# récupère le nom du fichier et ajouter le no de dossier
|
||||
filename = '%s-DD%s-%s' % (societe, nochantier, request.POST['filename'].filename)
|
||||
|
||||
file_path = os.path.join('%s/%s' % (request.registry.settings['mondumas.devfac_dir'],societe), filename)
|
||||
# We first write to a temporary file to prevent incomplete files
|
||||
temp_file_path = file_path + '~'
|
||||
|
||||
# Finally write the data to a temporary file
|
||||
input_file.seek(0)
|
||||
with open(temp_file_path, 'wb') as output_file:
|
||||
shutil.copyfileobj(input_file, output_file)
|
||||
|
||||
# Now that we know the file has been fully saved to disk move it into place.
|
||||
os.rename(temp_file_path, file_path)
|
||||
filesize = round(os.path.getsize(file_path) / 1024)
|
||||
|
||||
insert_dossier_attaches(request, nodossier, filename, '%s Ko' % str(filesize), logged_in.upper())
|
||||
|
||||
message = 'Le fichier est téléchargé avec succès.'
|
||||
# Finally write the data to a temporary file
|
||||
input_file.seek(0)
|
||||
with open(temp_file_path, 'wb') as output_file:
|
||||
shutil.copyfileobj(input_file, output_file)
|
||||
|
||||
# controler la taille du fichier < 4 Mo
|
||||
filesize = round(os.path.getsize(temp_file_path) / 1024)
|
||||
if filesize > 4096 :
|
||||
os.remove(temp_file_path)
|
||||
request.session.flash("La taille de ce fichier dépasse la limite autorisée. Téléchargement impossible.", 'warning')
|
||||
else:
|
||||
# Now that we know the file has been fully saved to disk move it into place.
|
||||
os.rename(temp_file_path, file_path)
|
||||
|
||||
insert_dossier_attaches(request, nodossier, filename, '%s Ko' % str(filesize), logged_in.upper())
|
||||
request.session.flash('%s : Ce fichier est téléchargé avec succès.' % input_name, 'success')
|
||||
|
||||
return {
|
||||
'page_title': u"Télécharger un document",
|
||||
'message': message,
|
||||
'url': url,
|
||||
'nodossier': nodossier,
|
||||
'dossier': dossier,
|
||||
|
||||
Reference in New Issue
Block a user