科學園功能說明
登入

以form的方式 上載檔案 時 中文檔名若是有 閱/功/許 等中文字時

透過php讀取時 經常會出現問題 原因是那些中文字以兩個byte中文字碼呈現時

其中一個字碼包含反斜線

我的處理方式是

在送出form 前 以程式先處理

<script>
function getFile(file){
    re=/.*\\\\/g;
    return file.replace(re,"");
}
</script>
<FORM ENCTYPE="multipart/form-data" METHOD="post" ACTION=index.php>
<INPUT TYPE=hidden NAME=wdir VALUE="">
<INPUT TYPE=hidden NAME=action VALUE=upload>
<INPUT TYPE=hidden NAME=fname VALUE=''>
<INPUT NAME="userfile" TYPE="file" size="60">
<INPUT TYPE=submit NAME=save VALUE="上載" onClick="this.form.fname.value=getFile(this.form.userfile.value);">
</FORM>

然後於 php中 由 fname 取得檔名
例如

                    $userfile_name=stripslashes($fname);
                    if ($userfile_name) {
                        $newfile = "$basedir$wdir/$userfile_name";
                        if (move_uploaded_file($userfile['tmp_name'], $newfile)) {
                            $a = NULL;
                            $a->file = "$userfile_name (".$userfile['type'].")";
                            $a->directory = $wdir;
                            print_string("uploadedfileto", "", $a);
                        }

0最後修改紀錄: 2004/07/23(Fri) 17:16:24


尚未登入. (登入)

since 2011/06/20 18:23