ホームページ  >  に質問  >  本文

Smarty テンプレートの getimagefile() はランダムに動作します

フォト ギャラリー テンプレート (CMSMS) では、次のコードを使用します:

リーリー

ギャラリーがロードされるたびに、一部の画像のみ (場合によってはすべての画像) の寸法 (幅と高さ) が取得されます。それは完全にランダムであり、必ずしも同じ画像であるとは限りません。明らかに、さまざまなソースからさまざまな画像を試しました。

「オープン ストリームに失敗しました: 接続が拒否されました」というエラーが発生しました。 Ctrl F5 ランダムに与える

これは共有ホスティング (OVH) です。

Web サイトのルートに php ファイルと画像ディレクトリ (多数) を作成しました。

リーリー

正常に動作し、すべての画像が処理されます。

それで、もし誰かが以前にこの問題に遭遇したことがあれば...

P粉715274052P粉715274052425日前554

全員に返信(1)返信します

  • P粉515066518

    P粉5150665182023-09-11 11:29:41

    多くのホスティング プロバイダーは、DDOS 攻撃に対抗するため (またはリソース割り当てを考慮するため)、接続制限や接続速度制限 (または同様のもの) を課しています。

    接続速度制限の場合:

    リーリー

    他の方法を使用して、1 秒あたりの PHP 呼び出し/特定の PHP メソッド呼び出しの数を制限することもあります。

    テンプレート メソッドの場合、getimagesize への各 呼び出しは 個別の リクエストであるため、スロットルがトリガーされ、接続拒否エラーが発生する可能性があります

    PHP の方法では、単一のリクエストとして扱われるため、正常に通過します。

    この問題を解決するには、ホスティング会社に相談するしかないと思います (ただし、可能性のある DDOS などを解決する必要があるため、対応してもらえないかもしれません)。そうでない場合は、PHP が画像レコードを解析する方法に固執する (または Go に切り替える)別のホスティング会社へ/専用サーバーを使用)

    返事
    0
  • キャンセル返事