Re: [請益] 中文檔案上傳, 再move_uploaded_file() …

看板PHP作者 (Gmoz)時間18年前 (2007/08/17 21:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《origo (補習班版在哪兒啊,告訴我)》之銘言: : ※ 引述《origo (補習班版在哪兒啊,告訴我)》之銘言: : : 想請問一下各位, : : 我寫好一個檔案上傳的php程式, : : 英文檔名是ok的, : : 但是中文檔名的話, 就會在move_uploaded_file時出錯, : : 我是用$_FILES['filepath']['name']或者是利用javascript取出 : : 中文檔名在POST出去的方法, : : 都是不行, 請問是為什麼呢? : 不好意思, 我的程式碼是... : if( $_FILES['filepath']['tmp_name'] != "" ) : { : /* 這裡會有錯, $_POST['fname']則是在submit時就用JScript取出中文檔名 */ : if( false == move_uploaded_file($_FILES['filepath']['tmp_name'], : "../subject/".$_POST['fname']) ) : { : $result = false; : } : else : $result = true; : unlink("../subject/".$row2['filepath']); : $sql="UPDATE `basic` SET `experience` = '".$experience."', `contest` = '".$contest."', `prize` = '".$prize."', `group` = '".$group."', `subject` = '".$subject."', `filepath` = '".$_FILES['filepath']['name']."' , `date` = '".$date."' WHERE `id: ` = ".$user_id." ;"; : } 會不會是因為編碼的關係 0.0... 要不要改個方式,先將檔案資訊存入資料庫 然後把檔案更名(例如uid)後再存入資料夾, 要下載的時候再把檔案資訊抓出來,在header()裡面幫他改回原來的名字? 上傳 $query = "INSERT INTO uploads (file_name,file_size) VALUES('{$_FILES["filepath"]["name"]}',{$_FILES["filepath"]["size"]} . . $extension = explode ('.', $_FILES["filepath"]['name']); $d = $extension[1]; $uid = mysql_insert_id(); $filename = $uid .'.'. $d ; if(move_uploaded_file($_FILES["upload$t"]['tmp_name'],"../subject/$filename")) echo '上傳成功!'; 下載 $query = "SELECT file_name,file_size FROM...WHERE WHERE uid = {$_GET['uid']}"; mysql_query("SET CHARACTER SET 'big5'"); . . $result = mysql_query($query); list($fn,$fs)=mysql_fetch_array($result,MYSQL_NUM); . . $extension = explode('.' , $fn); $the_file='../subject/'.$_GET['uid'].'.'.$extension[1]; . . header("Content-Disposition: attachment; filename=$fn"); readfile ($the_file); 不知道這樣可不可以 @@ 有時候我遇到奇怪的情形就會直接用別種方法來做了 (因為是新手等級,有些BUG抓不到 〒△〒) ------ 目標成為抓蟲少年 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.129.41.35
文章代碼(AID): #16nP_21I (PHP)
文章代碼(AID): #16nP_21I (PHP)