Код не запускается после добавления проверки для PDF с использованием типа файла - PullRequest
0 голосов
/ 23 января 2020

Я беру изображения сомов и pdf-файлы из почтового запроса в flask и преобразую их все в pdf, но пропускаю любые pdf в запросе на публикацию.

Если я запускаю свой скрипт ниже, я получаю ошибка, но если я закомментирую эту часть, у меня нет проблем:

       kind = filetype.guess(img)
        if (kind.extension == 'pdf'):
            print('Skip pdf')

        else:

Вот мой код:

from PIL import Image
import img2pdf
import filetype
from flask import Flask, request
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

class newEmail(Resource):
    def post(self):
        image_files = request.files.getlist("file[]")
        for img in image_files:

            kind = filetype.guess(img)
            if (kind.extension == 'pdf'):
                print('Skip pdf')

            else:

                pdf_bytes = img2pdf.convert(img) 
                pdf_fil = open(img.filename+'.pdf','wb') 
                pdf_fil.write(pdf_bytes) 
                img.close() 
                pdf_fil.close() 

        return {'message': 'Success'}

api.add_resource(test, '/')

if __name__ == '__main__':
    app.run(debug=True)

Я получаю эту ошибку:

File "C:\Users\kbu\Downloads\python\flaksapp\app.py", line 26, in post
    pdf_bytes = img2pdf.convert(img)
  File "C:\Users\kbu\Downloads\python\flaksapp\env\Lib\site-packages\img2pdf.py", line 1829, in convert
    ) in read_images(rawdata, kwargs["colorspace"], kwargs["first_frame_only"]):
  File "C:\Users\kbu\Downloads\python\flaksapp\env\Lib\site-packages\img2pdf.py", line 1169, in read_images
    raise ImageOpenError(
img2pdf.ImageOpenError: cannot read input image (not jpeg2000). PIL: error reading image: cannot identify image file <_io.BytesIO object at 0x000001A9EA76B130>
...