3

ユーザーがプレイ可能なキャラクターを作成できるオンライン ゲームを PHP で作成しています。各キャラクターは、ユーザーがアップロードしたポートレートを持つことができます。プレイヤーは複数のキャラクターを同時に持つことができ、それらの写真はいつでも変更できます。当然、巨大なファイルを避けるために、写真のサイズを変更して再圧縮する必要があります。これが私の問題です:

プレイヤーが自分のデータ (特に画像) を変更して「保存」を押すと、サーバー側の検証が開始されます。一意でないキャラクター名、空の必須フィールドなどをチェックします。エラーが見つかった場合は、が表示されます。この場合、フォームにはプレーヤーが入力したデータが事前に入力されている必要があるため、すべてを再入力する必要はなく、障害のあるビットを変更するだけで済みます。しかし、そのような「一時的な」状態で写真を保存するにはどうすればよいでしょうか。

ファイル アップロード フィールドに事前入力できません。ブラウザで許可されていません。一時ファイルに保存すると、プレーヤーはブラウザを閉じてプロセス全体を中止できるため、ある時点で画像をクリーンアップする必要があります。それはいつですか?また、一時ファイルにはどのファイル名を選択すればよいですか? プレイヤーが 2 つのブラウザー タブで編集するために同じキャラクターを開いた場合、競合してはなりません (それぞれに独自のコピーが必要です)。

この問題をどのように解決しますか?

4

4 に答える 4

0

フォームのエラーに関係なく、画像をすぐに更新するか、画像の更新を別のフォームに分割することをお勧めします。そうすれば、複雑なステート マシンやクリーンアップを行わなくても、2 つの問題を解決できます。

于 2009-09-15T18:52:34.773 に答える