エンジニア足立のコーディング日記

エンジニア足立のコーディング日記

ブログトップ >> 『PHP』の記事一覧 >> PHP PDFファイルのアップロード機能を追加

PHP PDFファイルのアップロード機能を追加

公開日:
この記事を読むのに掛る所要時間: 218

お客様から、

既存システムにPDFファイルをアップロードする機能を追加したという依頼を頂きました。

その機能について少し説明したいと思います。

 

まず、

ファイルの選択画面のHTMLは、

みたいになりますね。

 

それで、

ファイルのアップロード処理を行うPHP側のコードは、

みたなコードになりますね。
※かなり雑なコードですが。。。

 

これで完了であれば非常に簡単なんですが、

当然PDFファイルのアップロード機能なので、

アップロード処理を行う前に、

PDF以外のファイルをアップロードしていないかのチェックを行わないといけません。
※例えば、悪意のあるスクリプトを記述したHTMLなどをアップロードされると深刻な脆弱性になってしまうこともあるので、
 アップロードするファイルの種類が決まっているのであれば、必ずファイルのチェック処理は行って下さい。

 

で、

今回ここで問題が1点発生しました。。。

 

まずは、以下のコードで拡張子のチェックを行います。

これは問題なし!!

 

次に、以下のコードでファイルタイプのチェックを行います。

これも問題が無いように思いますが、

テストしてみるとまずい動作が見つかりました。

 

テストの為に画像(今回はJPEGファイル)の拡張子を無理やり「.pdf」に変更してアップロードしてみたのですが、

なぜかこのチェック処理を抜けてアップロードできてしまいます。

 

どうも、

$_FILES[“pdf_file”][“type”]に入っているファイルタイプが、

「image/jpeg」ではなく「application/pdf」になってしまっているようです。

拡張子を無理やり変えただけのファイルまでPDFファイルとして認識されてしまうのは気持ちが悪いので、

このコードはまずいです。

 

そこで、

今回は以下のコードに書き換えてやることで、

こちらの意図通りの処理を行うことが出来ました。

 

ブログに全コードを記載するのは大変なので、

かなりおおざっぱなコードになってしまいましたが、

取りあえずこんな感じで機能追加は可能です。

公開日:更新日:)  投稿者:
このページのTOPへ戻る

著者情報

足立 拓也(あだち たくや)
1980年生まれ。
出身:兵庫県丹波市。
趣味:ボクシングジム通い。
特技:歴史の話しをすること。

カテゴリー