diff --git a/src/file/assets/thumbnail-not-available.png b/src/file/assets/thumbnail-not-available.png new file mode 100644 index 0000000000..f960ce4d00 Binary files /dev/null and b/src/file/assets/thumbnail-not-available.png differ 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; })();