イメージデータを簡単にベースにエンコードされたセッションとして保存できます。運用サーバーでは、十分なRAMが必要です。 私のアプリケーションは、mongoDBをインストールする前に、更新と変更のために4枚の画像/アプリケーションを40MBまで必要としました。 (ベースエンコーディングは、1.3倍の画像サイズになります。)
$tmpNameSS1 = $_FILES["screenshot1"]["tmp_name"];
$fp = fopen($tmpNameSS1, 'r');
$rawDataSS1 = fread($fp, filesize($tmpNameSS1));
fclose($fp);
$SS1FileName = $_FILES["screenshot1"]["name"];
$encodedSS1Data = base64_encode($rawDataSS1);
registry::update('sCreateSS1Name', $SS1FileName);
registry::update('sCreateSS1Data', $encodedSS1Data);
場合は、次のようになります。あなたは、複数アップロードする画像とサイズやタイプのクライアントとサーバーの両方の検証を持っています。セッションからフェッチするほうが高速です。 DBを挿入した後、画像を保持する変数をnullにします。コードがブロックの最後に到達した後、あなたは空の文字列と画像のためのセッションを更新することができます
<img src="data:image/;base64,<?php echo registry::get('sCreateSS1Data'); ?>"/>
:
ブラウザが持つイメージのショーが表示されます。典型的なケースは、フォームフィールドを検証で更新する場合と、ユーザーがテキストを変更したい場合です。また、失敗した更新の間にアップロードされた画像を表示することもできます。ラウンドトリップ(推奨)を保存したい場合は、セッション中にデータを保持し、コード終了後にその値を空にします。
登録に失敗したらどうなりますか?別のPHPインスタンスに関連する画像なので、削除する画像をどのように知っていますか? – Burimi