前提・実現したいこと
- フォーム入力→確認画面→完了(完了メール)
- 確認画面にアップロードしたファイル名(複数)を表示。
- 確認画面で「履歴バック」をされたときには、ファイルを削除。
試したこと
PHPを書いたことがなく、下記サイトを参考にファイルアップロード付きメールフォームを作ってます。
https://gray-code.com/php/make-the-form-vol8/
それに改変していますが、これで一応最低限の一連はできています。
確認画面(複数ファイル表示)、ファイルアップロード、確認メール。
改変したこと:
- 一時ファイルディレクトリと正式ディレクトリを用意。
- ファイル名の頭にユーザー名を加えました。
例外について対処したい
今回やったやり方だと良くも悪くも「一旦ファイルをサーバにアップロード」しています。
フォームを入力し確認画面に進む。
その後ユーザーが「(履歴)戻る」をする。
そして“違う”ファイルを選択し再び確認画面に進み完了させる。
こうなるとサーバーには2つアップロードされることになります。
今はとにかく処理を成功させるために、
ファイル名にユーザー名を追加して、そのファイル名にユーザー名を含んでいるファイルは正式ディレクトリへ移動するという行為を踏んでいます。
この場合受け取った側が「どちらが正しいファイル」なのか?わからなくなってしまいます。
またユーザーにしてみれば、それはキャンセルしたつもりになってますよね。
参考にしたプログラムの書き方だと、グローバル変数とローカル変数の関係で?変数を引き継げません。
最初の段階でファイル名に何かコード名を付けて、それを含んでなければ削除ってことをすれば良さそうですが、さっぱりわかりません。
代わりにJqueryを使ってJavaScriptでやることも考えたのですが、
今度はc:\fakepath\が表示されてしまったり、スマートに行きません。
※確認画面にも「ファイル名を表示」させたいです。
サーバーはCentOS6 PHP7です。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/04/05 11:45
退会済みユーザー
2019/04/08 10:11 編集
2019/04/09 00:29
退会済みユーザー
2019/04/10 08:06 編集