2

Wordpress にサイトがあり、コマース サイトには Woocommerce を使用しています。つまり、ログインしたユーザーが一度に複数の画像をアップロードできるフロント エンド フォームがあります。問題は、これらの画像は通常、デジタル カメラから直接取り出されたものであり、可能な限り最高の解像度に保つ必要があることです。

ユーザーが 50 枚以上の画像をアップロードしようとすると、永遠に時間がかかり、完了しないことさえあり、504 エラーが返されます。

ホストと話し、サーバーのタイムアウトを減らすためにできる限りのことを行い、添付のスクリプトを編集することを提案しました。また、wp_config ファイルに移動し、最大アップロード サイズを 256M などに設定しました。

この問題はまだ発生しています。サーバーのタイムアウトを防ぐ方法や、コードを完全に作り直すことなく画像のアップロードを高速化する方法について、誰かが推奨事項を持っているかどうか疑問に思っていました。

添付のコードはこちら: http://pastebin.com/AHTDNaDL

そのファイルを参照する際の時間を節約するために、行 3 ~ 175 で、アップロードされた各画像の製品作成を処理します。行 253 ~ 340 はアップロード フォームで、行 447 はバインド機能を開始します。

私はこれに何日も携わっており、プラグインからajaxアップローダーまですべてをグーグルで検索しましたが、外部からの入力が役立つと考えて、まだあまり運がありません

編集: サーバーを必要に応じて構成できるようには見えないため、製品のアップロード/作成をいくつかの異なるセクションに分割することは可能ですか? 言い換えれば、ユーザーはそこにあるすべての画像をアップロードでき、バックグラウンドで create_var_product 関数を実行してタイムアウトの問題を防ぐことができますか?

4

2 に答える 2

2

php.ini ファイルを編集する必要があります。少なくとも次の編集を見てください。

max_input_time
upload_max_filesize

ドキュメントを確認してください。

http://us3.php.net/ini.core
于 2014-03-11T22:39:29.970 に答える
1

スクリプトの先頭に次の行を追加してみてください。

ini_set('max_execution_time', 10000);
set_time_limit(0);
ini_set('memory_limit', '-1');
于 2014-03-11T23:10:24.197 に答える