サポート » プラグイン » MW WP FORM アップロードファイルのサイズ制限について

  • 解決済 emhiro

    (@emhiro)


    便利なプラグインなので使用させていただきたいと思います。

    ファイルのアップロードを使用したいので
    ファイルフィールド(mwform_file)を設定しました。
    そこでバリデーションのサイズ制限を設定しているのですが、うまく動作しておりません。
    実際のところバリデーションチェックでエラーにはなっているようですが、
    確認画面へ進んでしまいます。
    また、確認画面へ進んではいるのですが、
    ファイルのアップロードはされないようです。
    (ファイルのリンクURLがおかしい・・・)
    このような現象はございませんでしょうか。

    あと、管理者用メールに画像ファイルも添付したいのですが、
    可能でしょうか?

    よろしくお願いいたします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック投稿者 emhiro

    (@emhiro)

    何度も失礼いたします。

    少しデバッグで動作させておりましたところ
    「確認画面へ」ボタンを押下すると、
    バリデーションチェックが何故か2回はしっており、
    1回目は、ファイルのサイズ制限のエラーがかかっているのですが、
    2回目で、ファイルサイズの制限エラーチェックのところで、
    $_FILESがなくなっているので、エラーチェックされていないようで、
    そこでサイズ制限エラーがロストしております。
    ですので、確認画面へ遷移してしまうものと思われます。

    ファイル形式のチェックも入れて試しましたが、
    こちらはバリデーションチェックが2回実行されるのは同様ですが、
    エラーのときは2回目も同様にエラーになるようになっております。

    そもそもバリデーションチェックが2回実行されるところが不明ですが、
    実際の環境では、フォームの画面はSSLにしたいのでその設定は入れております。
    上記のデバッグしてみたのはローカル環境でSSLの設定は特に入れていないので、
    そちらが問題ではないような気がします。

    すいません、少し焦っているので追記いたしました。
    何か気づかれた部分ありましたら情報提供お願い致します。

    トピック投稿者 emhiro

    (@emhiro)

    何度もすいません。

    2回バリデーションが実行されている部分で、
    フォーム入力画面の「確認画面へ」ボタンを押下すると、
    POSTとは別にGETで入力画面が呼び出され、
    301が帰ってきて、その後200のステータスが帰ってくるようになっています。
    パーマネントリンク関連が原因でしょうか。

    バリデーションチェックが2回実行されるのは仕様です(画面変遷のたびに実行されるため)。
    ファイルサイズのチェックについてはバグなので、近日中に修正される予定です。

    トピック投稿者 emhiro

    (@emhiro)

    ご連絡ありがとうございます。
    ファイルのアップロードがどうしても必要なので、
    今回は別の方法で検討します。

    ファイルサイズチェックの部分でバグがあったので、
    想定されている処理が行われていなかったかとは思いますが、
    apacheのログがかなりの量出力されてしまっております。
    確認画面までいってファイルのリンクを表示されているかと思いますが、
    そこのリンク先がテンポラリーフォルダのパスが抜けた状態だったことから考えると、
    想定しているテンポラリーフォルダー以外のところに書き込みにいこうとしていて
    そこのフォルダはパーミッションを許可していなかったために、
    リトライしまくっているようにみえました。
    ログの容量が異常でしたので、
    レアケースですが異常系に入った場合も
    なんらかの考慮が必要かと思われます。

    便利なプラグインだと思いますので、
    今後もブラッシュアップお願い致します。

    こちらの環境でもテストしてみましたが、ログは出力されませんでした。
    書き込むディレクトリも固定的に設定されるので、他のディレクトリに書き込みこもうとしているのは別の問題かもしれません。もしよろしければログをみせていただければと思います。

    トピック投稿者 emhiro

    (@emhiro)

    ログの件につきまして自宅からサーバーへのアクセスができないので、
    週明けに一度確認してご連絡させていただければと思います。
    容量に驚いて詳しく中身をみれていなかったので、
    またこちらでもよく確認しておきます。

    トピック投稿者 emhiro

    (@emhiro)

    ログの件遅くなり申し訳ございません。
    確認しましたところ、一回の操作をすると
    以下のPHPのWarningがものすごい量出力されていました。
    (何回操作したかは忘れてしまいましたが、ログは6Gになっていました)
    内容は、
    —–
    PHP Warning: is_dir(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (<ドキュメントルートまでのパス>/:/tmp/) in <ドキュメントルートまでのパス>/wp-includes/functions.php on line 1370
    —–
    上記がものすごい量出力された後に、
    —–
    PHP Fatal error: Maximum execution time of 60 seconds exceeded in <ドキュメントルートまでのパス>/wp-includes/functions.php on line 1370
    —–
    上記で終わっています。
    エラーになっている部分は上記ですが、
    おそらく、
    mw_wp_form_file.phpの212行目あたりから呼び出されている部分が起因しているのではないかなと思うのですが、いかがでしょうか。

    また、こちらはローカル環境(Windows)でですが、
    ドライブの直下にmw-wp-form_uploadsフォルダが作成されていました。
    こちらは私が手動で作成したものではございませんので、
    おそらくuploadsフォルダに作成されるはずのテンポラリフォルダーが
    どのタイミングでかは不明なのですが、
    ドライブの直下に作成されていました。

    確認画面でのファイルのリンクがおかしいと記載させていただいておりましたが、
    現象を詳細にお伝えしますと、リンクが
    <確認画面URL>/<ファイル名>
    になっておりまして、
    容量チェックを設定していない場合の正常ルートと比較すると、
    テンポラリーフォルダまでのパスが抜けている状態でした。

    こちらの現象と結果の記載のみで申し訳けないですが、
    内容のほう伝わりましたでしょうか?
    以上、よろしくお願い致します。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「MW WP FORM アップロードファイルのサイズ制限について」には新たに返信することはできません。