ホームページ  >  記事  >  バックエンド開発  >  SWFUpload はアップロード時や保存時に漢字を削除しますか?

SWFUpload はアップロード時や保存時に漢字を削除しますか?

WBOY
WBOYオリジナル
2016-06-23 13:39:36754ブラウズ

SWFUploadでアップロードする際、ファイル名が英語であれば問題ありませんが、中国語だと表示されません 今回はどうなったのでしょうか?どこを修正すればい​​いのでしょうか?
まず第一に、私がアップロードしたファイルには中国語の文字が含まれています


アップロードフォルダーにアップロードした後のファイル名は(前の日付は自分で追加しました)、つまり「biao」と「中国語」の 3 つの単語だけが存在することを意味します" は消えました


データベース内の完全なファイル名とパスを表示します


Upload.php は次のように変更されます
// $file_name = preg_replace('/[^'.$valid_chars_regex.']|.+$/ i', "", ベース名($_FILES[$アップロード名]['名前']));
$ファイル名 = ベース名($_FILES[$アップロード名]['名前']);
$ファイル名=iconv("UTF- 8","GB2312" ,$file_name);

この問題の解決方法がわかりません、アドバイスをお願いします~


ディスカッションに返信(解決策)

$fn = '中文文件名.txt';echo basename($fn);
.txt

これは PHP の古い問題です: 中国語のパス (ファイル名) が認識されません

ただし:
1. アップロードされたファイル名にはパスが含まれていないため、ベース名は必要ありません
2. 中国語のファイルを使用する場合名前を変更しないと、オペレーティング システムのデフォルトの文字セットと競合する可能性があります
3. 名前を変更しない場合 同じ名前のファイルが見つかった場合、長距離転送ファイルをどのように処理しますか?

$fn = '中文文件名.txt';echo basename($fn);
.txt

これは PHP の古い問題です: 中国語のパス (ファイル名) を認識できません

ただし:
1. アップロードされたファイル名にはパスが含まれていないため、ベース名は必要ありません
2.中国語のファイル名を使用してください。その場合、オペレーティングシステムのデフォルトの文字セットと競合します
3. 長距離ファイルの名前を変更しない場合、同じ名前のファイルはどのように処理しますか?




xuzuning モデレーター、ありがとうございます。説明は非常に明確です
中国語の文字化けの問題を非常に多く検索しましたが、basename() をテストしませんでした。これは見落としでした。
同じ名前のファイルのファイル名の後に時間の文字列 (秒単位で正確) を追加する予定ですが、大丈夫ですか?

中国語のファイル名を使用することはお勧めできません。その理由はモデレーターによって説明されています。

同じ名前のファイルの場合、ファイル名の後に時間の文字列(秒単位)を追加する予定ですが、大丈夫ですか?
ファイルをアップロードするたびに、時刻と乱数を使用してファイル名を生成し、元のファイル名を使用しないことをお勧めします。

$oldname = 'myfile.xlsx';$newname = createFileName($oldname);echo $newname;function createFileName($name){    // 获取后缀    $name = explode('.', $name);    $ext = array_pop($name);    // 获取微秒数    $r = explode('.',microtime(true));    $r = array_pop($r);    // 生成newname    $newname = date('YmdHis').$r.mt_rand(1000,9999).'.'.$ext;    return $newname;}

中国語のファイル名を使用することはお勧めできません。その理由はモデレーターによって説明されています。

同じ名前のファイルの場合、ファイル名の後に時間の文字列(秒単位)を追加する予定ですが、大丈夫ですか?
ファイルをアップロードするたびに、時刻と乱数を使用してファイル名を生成し、元のファイル名を使用しないことをお勧めします。
りー




ありがとう!
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。