PHP

PHP

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

お客様から、

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

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

 

まず、

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

みたいになりますね。

 

それで、

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

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

 

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

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

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

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

 

で、

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

 

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

これは問題なし!!

 

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

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

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

 

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

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

 

どうも、

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

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

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

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

 

そこで、

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

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

 

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

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

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

弊社では、以下の方に向けて、WordPressの短期学習プログラムを
格安で提供しております。

  • 個人でWordPressを使ったサイト構築をお考えの方
  • 自社でホームページの構築・運用をお考えの方
  • 企業のWEB担当者の方

内容

基本的には、初心者の方を対象にした学習プログラムです。

※ WordPress制作の上級者の方の場合、弊社の学習プログラムはあまり役に立たないと考えています。

  • ・ WordPressのインストールからセッティングの方法
  • ・ WordPressのテーマ選びについて
  • ・ WordPressのプラグイン選びと設定方法について
  • ・ サーバの準備方法
  • ・ ドメインの取得・管理の方法
  • ・ FTPの設定方法
  • など

ご用意頂くもの

  • ・ ノートPC
    ※ 弊社はWindowsを業務で利用しておりますので、できればWindowsのPCをおすすめしています。
  • WordPressでサイトの制作を考えているが、何から始めればいいのか分からない。
  • ドメインやサーバはどうやって準備すればいいの?
  • そもそもホームページの公開には何が必要なの?

などなど、

どのような内容でも構いませんので、お気軽にお問い合わせ下さい。

お客様の目的をお聞きした上で、最適の学習プランを提案致します。

ご興味のある方は、以下の内容を記載の上、一度お問い合わせ下さい。
こちらより、折り返しメールを致します。

  • ① お名前
  • ② 折り返し先のメールアドレス
  • ③ 希望の学習内容

関連記事

  1. PHP

    PHP

    勝手にサーバ移行はやめて。。。

    かなり前に弊社が作成、納品したデータの入力システムがあるのですが、…

  2. PHP

    PHP

    【CVE-2017-5340】PHP7 脆弱性の対応

    結構前の話になってしまうのですが、PHP7.0.xxとPHP7.1…

  3. PHP

    PHP

    SJISではなくSJIS-winを使用すること!!

    mb_convert_encodingでの文字コードの変換…

  4. PHP

    PHP

    「PHPINIDir」でphp.iniのパスを指定

    php.iniを修正したのですが、Apacheの再起動までちゃんと…

  5. PHP

    PHP

    split()関数とexplode()関数

    サーバーのバージョンを5.3へアップした途端、PHP Deprec…

  6. PHP

    PHP

    PHP5.3で問題が発生です!!

    最近ディープのサーバをさくらインターネットの専用サーバへ乗り換えたので…

最近の記事

  1. WordPress(WP)
  2. 404 Not Found
  3. WordPress(WP)
  4. WordPress(WP)
  5. PHP
  6. PHP
  7. 風邪予防
  8. WordPress(WP)
  9. PHP
  10. 宅建
PAGE TOP