[請益] update file問題

看板PHP作者 (ChaN)時間15年前 (2010/11/17 13:46), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/2 (看更多)
<?php // 判斷以及Sql Injecttion部份先略過 $a = $_POST['a']; $b = $_FILES['file']['name']; $sql = sprintf("UPDATE table SET a = %s, b = %s WHERE id = 1", $a, $b); mysql_query($sql) or die(mysql_error()); ?> 這是一般更新資料的語法 一般input的欄位如果資料沒修改,可以透過傳過來的舊資料update舊資料 但input file只會傳空值過來,也就是說update input file時沒傳東西又沒判斷的話該 欄位會被清空 目前有兩種方式 1. 直接在檔案欄位旁邊放input hidden,塞舊的檔案名稱 update時判斷如果有上傳新的檔案就update新檔案,沒有的話就update input hidden 優點:效能好 缺點:DOM外漏總是不好 2. 寫function呼叫出原始檔案名稱update 用function靠id調出原始檔案名稱,沒有上傳新檔案的話用他來update 優點:較安全 缺點:效能較差,如果有5個檔案就要query 5次 不知道有沒有更好得作法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.21.208

11/17 14:15, , 1F
直接用primary key當file name, move_uploaded_file()
11/17 14:15, 1F

11/17 15:48, , 2F
您好,不是上傳的問題,是沒有上傳判定更新檔案欄位的問題
11/17 15:48, 2F

11/17 18:03, , 3F
沒值不要update 不就好了...
11/17 18:03, 3F

11/17 22:17, , 4F
update是一個字串,如果要判斷沒有不加入的話
11/17 22:17, 4F

11/17 22:18, , 5F
那是不太可能的,5個file欄位就有120種組合
11/17 22:18, 5F

11/18 10:07, , 6F
所以用 if( !empty($_FILES['file']) ) 包起來 ?
11/18 10:07, 6F
文章代碼(AID): #1CusnDIw (PHP)
討論串 (同標題文章)
文章代碼(AID): #1CusnDIw (PHP)