困っていること
Pythonでユーザー画像の変更ができるようにフォームを作成しています。
その際に、pngやjpegなどの画像拡張子に変更しているダミー画像(拡張子は画像だが中身は別ファイル)を弾くようにしたいと考えています。
自分で調べて見たところ、imghdr
を使うと中身を見てくれることがわかりました。
また、アップロードした画像の中身が画像ファイルでなかった時Noneを返すという性質があることもわかりました。
そこで、Noneが返ってこなかったら正常な処理を、Noneだったらエラーメッセージを表示というように処理を書いています。
しかし、これだと特に画像を変更をせず変更完了ボタンを押した際にもNoneを返すため、エラーメッセージを表示してしまいます。
そこで、imghdr
で中身を見る前に、そもそも画像が選択されているのかを判定したいのですが、どうif文を書いたらいいかわからず困っています。
現在書いているコード
image = request.files['image'] print(image) imageDecision = imghdr.what(image) print(imageDecision) if imageDecision is not None: ~~~
print(image)の処理結果
- 何も選択せずに変更完了ボタンを押す
<FileStorage: '' ('application/octet-stream')>
- ダミー画像を選択して変更完了ボタンを押す
<FileStorage: 'ダミー.png' ('image/png')>
print(imageDecision)の処理結果
- 何も選択せずに変更完了ボタンを押す
None
- ダミー画像を選択して変更完了ボタンを押す
None
FileStorageが空だったらみたいに書けばいいのかなとは思うのですが、具体的にどう指定したら良いのかわからず困っています。。。。
以上です。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/30 02:17