From d81bc3cd212dbea309ce1ff2e5c9083ba943334d Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 16 Nov 2017 23:05:12 +0900 Subject: [PATCH] Fix thumbnail --- src/file/assets/thumbnail-not-available.png | Bin 0 -> 8822 bytes src/file/server.ts | 11 +++++++++++ 2 files changed, 11 insertions(+) create mode 100644 src/file/assets/thumbnail-not-available.png diff --git a/src/file/assets/thumbnail-not-available.png b/src/file/assets/thumbnail-not-available.png new file mode 100644 index 0000000000000000000000000000000000000000..f960ce4d004287e199e543ac1f6deb33bc088488 GIT binary patch literal 8822 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 S+-VF93=E#GelF{r5}E+_t(5@) literal 0 HcmV?d00001 diff --git a/src/file/server.ts b/src/file/server.ts index fa03fb7772..844b3d7369 100644 --- a/src/file/server.ts +++ b/src/file/server.ts @@ -50,11 +50,22 @@ interface ISend { function thumbnail(data: stream.Readable, type: string, resize: number): ISend { const readable: stream.Readable = (() => { + // 画像ではない場合 if (!/^image\/.*$/.test(type)) { // 使わないことにしたストリームはしっかり取り壊しておく data.destroy(); return fs.createReadStream(`${__dirname}/assets/not-an-image.png`); } + + const imageType = type.split('/')[1]; + + // 画像でもPNGかJPEGでないならダメ + if (imageType != 'png' && imageType != 'jpeg') { + // 使わないことにしたストリームはしっかり取り壊しておく + data.destroy(); + return fs.createReadStream(`${__dirname}/assets/thumbnail-not-available.png`); + } + return data; })();