学習日記 20230913
6:49 2023/09/13
えー、昨日の$_FILESの中身を分ける問題ですが、
やはり<input type="file" name="image[]">のように
nameをimage[]で配列にするやり方に戻しました。
投稿画像の合計枚数をカウントするときに、不便だったからです。
if(array_sum($_FILES['up_image']['size'])){
foreach ($_FILES['up_image'] as $parent_key => $child_array){
if($parent_key !== 'full_path' && $parent_key !== 'type' && $parent_key !== 'error'){
$up_image_array[$parent_key] = array_filter($child_array);
}
}
$up_image_count = count($up_image_array['name']);
}
これでファイルがアップロードされていたら、$up_image_countが0以外になるはずです。
7:23 2023/09/13
22:11 2023/09/13
これを何十周しているだろうか。
画像の差し替えをどうやったらいいだろう。
1枚の時はどうすればいいだろうか。
まず、1つ削除チェックボックスを入れる。
form1から画像をアップロードする。
画像枚数合計をチェックする。
ああああああ。
どうしよう。
何が一番困っている。
投稿もできる。削除もできる。
ただ、投稿に1枚の画像がすでにあるとき、1枚目の投稿フォームから画像を投稿しようとすると
既にあるのでできない、とかの差し替えをどう表現していけばいいかわからない。
たとえば、3枚の画像があって、2枚目を差し替えたいとき、
既にある2枚目の画像にチェックを入れて、
2枚目用の投稿フォームから画像をアップロードする。
その後の処理をしっかり言語化すると。
まず、postされた時点で、削除チェックボックスには
削除予定の画像番号が振られている。
この画像番号はその投稿内において、何番目の画像であるかを表している。
そして、画像番号は一時的に配列に格納される。
そしてその配列要素をcountする。
次に2枚目のフォームからアップロードされた画像について。
input要素の2枚目フォームに指定したnameで$_FILESに格納される。
そして、2枚目のフォームからアップロードしたよ、という判別として、
!empty($_FILES['2枚目のname']['name'])
を行い、あれば、
カウントを+1する。
ここまで終了したら、
まず画像枚数合計のチェックに入る。
次に投稿画像の合計サイズのチェックに入る。
この2つでエラーが無かったら
初めに画像の削除を行う。
DBへのdelete操作を行う。
次に投稿画像をDBへinsertする。
で完成かな。
これで一回作ってみよう。
やっぱりフォーム分けた方がいいんじゃない?
とりあえず、フォームを分けた。
えーと、1枚目の投稿フォームから画像が投稿できる条件は、
既にある1枚目に削除チェックがされている時のみ、か?
そうだね。多分。
また今日が終わった。
しぶといですね、この人、
23:22 2023/09/13
Discussion