拡張子をもとに判定することの問題 ファイルのアップロードを行うアプリを実装する際に、ファイルのcontent-typeを判定したいことがある。 もっとも手軽にcontent-typeの判定を行う方法としては拡張子での判定がある。CarrierWaveではuploaderクラス内でextension_white_listメソッドを上書きすることで、ホワイトリスト形式でアップロードを許可する。 # 〜抜粋〜 # Add a white list of extensions which are allowed to be uploaded. # For images you might use something like this: def extension_white_list %w(jpg jpeg gif png) end しかし、拡張子だけをもとに判定した場合は内容はPDFだけど拡張
![CarrierWaveでファイルの内容をもとにcontent-typeの判定を行う - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/0f045bd780413aa75c6fe694eb9e88bd32cdfb8c/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9Q2FycmllcldhdmUlRTMlODElQTclRTMlODMlOTUlRTMlODIlQTElRTMlODIlQTQlRTMlODMlQUIlRTMlODElQUUlRTUlODYlODUlRTUlQUUlQjklRTMlODIlOTIlRTMlODIlODIlRTMlODElQTglRTMlODElQUJjb250ZW50LXR5cGUlRTMlODElQUUlRTUlODglQTQlRTUlQUUlOUElRTMlODIlOTIlRTglQTElOEMlRTMlODElODYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTJmZGI2ODZhNzlhZTA3YjQ3ZGRiOTI5ZDNkNWZlNmNl%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwazBraXNoaW1hJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03ZjBjZjc2ZWE1ZjkyYmE4MzIwZGEyODkxY2MzODgwMg%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D5d168e5a4e9547946904436206c6a5fb)