重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ファイルアップロードが可能な掲示板を作成しており、$_SESSION でコードを書いていたのですが、 WordPress では非推奨だと知り代わりとなるものを探しております。
AIに聞いたところトランジェントを使用した方法を代替案としておすすめされたので実装してみたところ、ファイルがアップロードされた場合の $answer_data['attach'] にバイナリ(file_get_contents)の大きなデータが含まれており失敗してしまいます。
対処方法として「トランジェントを使わずにファイルを一時保存する」方法を推奨されたのですが本当にこの方法でよいか自信がありません…
アドバイスお願い致します。

※ トランジェントを使用した方法
https://wandbox.org/permlink/h1NK2iUXhbzmrPKg

※ トランジェントを使わずにファイルを一時保存する方法
https://wandbox.org/permlink/c8c4KVIL0U5vhMIA

A 回答 (1件)

WordPressは、ちょっと使っただけで、PHP以外の言語でのWebを開発するほうが多かったので、違っているかもしれませんけど・・。



一般的には、Webにアップロードする場合、アップロードファイルの最大サイズに制限を設定する処理を入れることが多いです。
利用者が少ないと想定できるなら、この最大サイズ指定をそれなりに大きくしておけばいいわけですが、利用者が多い場合は、この値をあまり大きくしない値にすると思います。

また、アップロードしたファイルがあまり大きくない場合、データベース内の領域にデータを登録しますが、ファイルが大きい場合は、データベースには保存したファイル名のみを登録して、アップしたファイル自体は、連番を付加したファイル名で、どこかのディレクトリに保存するような処理とすることが多いです。
これは、データベースのサイズ肥大化を防ぐためですね。

ちなみに、問題を解決するためにAIを活用するのはいいのですが、その言語やシステムに関するスキル、知識が少なすぎると、AIの回答を理解できないと思いますし、AIの嘘を見抜けない恐れがあります。
地道に勉強して、スキルがあるレベル以上になっていないと、うまくAIを活用するのは難しいかもしれません。
    • good
    • 1
この回答へのお礼

A.アドバイスありがとうございます。
回答者さんがおっしゃるように最大サイズは5MGで制限を入れているのですが、AIの指摘を元にするとファイルを3つ添付する設計になっているため、保存時に false を返して保存に失敗している可能性が高いようです…

データが大きくなることを想定して拡張子をチェック→ファイル名をデータベースに登録後、ディレクトリに保存する仕組みにしております。

少し AI に頼りすぎているのかもしれないので Wordpress についてもう少し理解を深めてみます。

お礼日時:2025/07/08 13:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A