Re: [請益] 上傳前先做檔名比對,但還是要上傳完才 …

看板PHP作者 (薛丁格的貓)時間19年前 (2006/08/18 02:51), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
自己寫的 放上來讓大家批評一下 /* 2006.7.xx ; alpe ; upload processer return true / false (object) $db = DB Class (Mix) $i = <input type='file' name='XX'> (string) $targetdir = move file to (Array) $data = extra infomations */ function uploadfile(&$db, $i ,$targetdir, $data) { if ( !isset($_FILES["f"]["name"][$i]) && $_FILES["f"]["error"][$i] != 0) return ; $dir = $_SERVER["DOCUMENT_ROOT"] . dirname($_SERVER["SCRIPT_NAME"])."/"; $upto = str_replace("/* file locatio directory */ ", $targetdir, $dir); //errchk echo $upto . "<br/>"; $size = $_FILES["f"]["size"][$i]; $name = $_FILES["f"]["name"][$i]; $ftype = $_FILES["f"]["type"][$i]; $tname = $_FILES["f"]["tmp_name"][$i]; $fname = md5(time() .$name. rand()); $size = floor($size/1024); $dat = date("Y-m-d"); $adj = explode('.', $name); $tmp = count($adj)-1; $adj = $adj[$tmp]; if (is_numeric($data["Cata"])) $Scate = $data["Cata"]; $Sname = $data["name"].".$adj" ; $Sver = $data["ver"]; $Snote = $data["note"]; $sql = "INSERT INTO FileB SET Loc = '$fname', name = '$Sname', app = '$ftype', ver ='$Sver', Cata = '$Scate', note = '$Snote' ,size='$size', fdate = '$dat'"; if(move_uploaded_file($tname, $upto.$fname)){ //errchk echo $sql . "<br>"; $db->query($sql); return true; } else { return false; } } // Cata 是類別 --- 下載用 $db = & new DB(); $db->query($sql); $data = $db->fetchAssoc(); $fname = "files/".$data["Loc"]; $name = $data["name"]; $size = $data["size"]; $app = $data["app"]; header("Content-Type: $app"); header("Content-Disposition: attachment; filename=$name;"); header("Content-Transfer-Encoding: binary"); if(!file_exists($fname)) die(" file was gone!"); $handle = fopen($fname, "r"); $contents = fread($handle, filesize($fname)); fclose($handle); print ($contents); flush(); : 推 piligo:謝謝以上各位,不過我的問題真的沒辦法上傳前就做比對嗎? 08/15 18:37 誰曉得他們傳什麼東西上去... ... 檔名一樣內容不一樣 他們還要再改檔名,會被碎碎唸吧 : 推 ottokang:AJAX是你的好朋友 08/16 01:51 檔名我是真的不推用ajax檢查... -- Live Long and Prosper -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.169.25.33
文章代碼(AID): #14vBh29O (PHP)
文章代碼(AID): #14vBh29O (PHP)