

formの中で `<input type="file" name="image" value="">` を書いてあります。

submit押下で、他inputタグが未入力の場合に、submit押下前に選択した画像ファイルを、次の画面で再度表示したいのですが、どなたかご存じでしたらご教示ください。

お手数をおかけしますがどうぞよろしくお願いいたします。


CC BY-SA 4.0
2022-08-09T11:26:05.237
90456
2022-08-09T17:55:17.823
2022-08-09T11:35:10.897
3060
53926
question
php html
<input type="file" name="image" value=""> 画像の保持について


まず、`input[type=file]`
上に事前に(自動的に)ファイルを選択させることは理論上不可能ではないですが、現実的ではなく無駄しかないのでお勧めしません。  
(フォーム入力時に選択されたファイルのblobをJavaScriptで何らかの形で保持し、遷移後にJavaScriptで逆手順を行います)

別のわかりやすい手段の例としては、

  * アップロードされたデータをセッションに一時的に保持し、再度ファイルが選択された場合にはそれを上書きする
  * アップロードされたファイルについてDBにレコードを作成し、IDをフォームに保持する、以下同じ 
    * この場合はほかのファイルにすり替えられないように対策が必要
  * そもそも検証をJavaScriptやHTMLの機能で行い、できるだけ遷移を不要にする 
    * もちろんサーバー側でのチェックは必要

などが考えられます。


CC BY-SA 4.0
2022-08-09T17:55:17.823
90465
2022-08-09T17:55:17.823
2376
90456
answer