request/utils: catch exceptions when reading PDF files
This commit is contained in:
parent
32a8a2fe31
commit
0de0bd4c23
|
@ -1,6 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# https://github.com/mfenniak/pyPdf
|
||||
from collections import defaultdict
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
from pyPdf import PdfFileReader
|
||||
from pyPdf.utils import PyPdfError
|
||||
|
@ -12,7 +15,11 @@ N_ = lambda x: x
|
|||
|
||||
def check_pdf(filelike):
|
||||
try:
|
||||
pdf_file = PdfFileReader(filelike)
|
||||
try:
|
||||
pdf_file = PdfFileReader(filelike)
|
||||
except:
|
||||
logger.exception('Invalid pdf file')
|
||||
raise ValueError(N_(u'Ce fichier PDF est invalide'))
|
||||
if pdf_file.isEncrypted and pdf_file.decrypt('') != 1:
|
||||
raise ValueError(N_(u'Les fichiers PDF chiffrés ne sont pas acceptés.'))
|
||||
pdf_file.documentInfo
|
||||
|
@ -23,7 +30,11 @@ def fill_document_attributes_from_pdf_file(document, docfile):
|
|||
try:
|
||||
if docfile:
|
||||
docfile.open()
|
||||
pdf_file = PdfFileReader(docfile)
|
||||
try:
|
||||
pdf_file = PdfFileReader(docfile)
|
||||
except:
|
||||
logger.exception('Invalid pdf file')
|
||||
raise ValueError(N_(u'Ce fichier PDF est invalide'))
|
||||
if pdf_file.isEncrypted and pdf_file.decrypt('') != 1:
|
||||
raise ValueError(N_(u'Les fichiers PDF chiffrés ne sont pas acceptés.'))
|
||||
pdf_info = pdf_file.documentInfo
|
||||
|
|
Reference in New Issue