File Upload with confirm(確認画面付きファイルアップロード) - opensource-workshop/connect-cms GitHub Wiki
【新方式】
入力画面でアップロード
確認画面でファイル取得
uploads テーブルに情報保存
uploads テーブルにはtemporary_flag を追加しておき、1(temporary)を設定
ファイル自体は storage\app\uploads に通常のアップロードと同じように保存
画面からのファイル取得(参照)時の UploadController の getFile() メソッドではtemporary_flag = 0 のみ対象とする。
データをシンプルにし、処理の速度低下を防ぐため、確認画面では、アップロードされたファイル情報はDBに登録しない。
(後で、テンポラリディレクトリのガベージは必要)
入力画面(input type=file)
↓
↓ ・ファイル名(日本語もあり)
↓
確認処理
↓
↓ ・処理(tmp/テンポラリ・ファイル名)へアップロード
↓ ・処理($upload_files 配列にアップロードファイルの情報を保持)
↓
確認画面
↓
↓ ・hidden(upload_files[] 配列形式でアップロードファイルの情報を保持)
↓ ・<img src="tmp/テンポラリ・ファイル名">
↓ or
↓ ・<a href="file">元ファイル名</a> tmp/テンポラリ・ファイル名
↓
完了画面
↓
↓ ・DBへアップロードファイルの情報を保存
↓
一覧など