アップロードする中国語のファイル名が空です

WBOY
リリース: 2016-06-23 14:18:41
オリジナル
933 人が閲覧しました

たとえば、Hello.txt をサーバーにアップロードすると、ファイル名の部分が空になります。 Windows システムではファイル名を空にすることはできませんか?

アップロード処理コード

<?$upload_path = $_SERVER['DOCUMENT_ROOT']."/upload/";$tmp_file = $_FILES['myfile']['name'];$dest_file = $upload_path.basename($tmp_file);if(move_uploaded_file($_FILES['myfile']['tmp_name'],$dest_file)){ echo "文件已上传至服务器根目录的upload目录下!";	 print_r($dest_file);}else{  echo	"文件上传时发生了一个错误".$_FILES['myfile']['error'];}?>
ログイン後にコピー


HTML コード
<html><head><title>upload</title></head><body><form enctype="multipart/form-data" action="upload.php" method="POST">上传此文件:<input name = "myfile" type="file" /><input type="submit" value="提交上传" /></form></body></html>
ログイン後にコピー


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

ファイル名が英語または数字の場合、問題ありません。

ファイル名には英語と数字を使用すると、移植が容易になります。

中国語の名前が必要な場合は、読み取り時に urlencode し、urldecode してください

utf-8 環境では、gbk 文字が空であるのが通常です

ユーザーが中国語の文字を含むファイルをアップロードした場合はどうなりますか

urlencode と urldecode のコードはどのように記述すればよいですか? PHP を長い間学習していないので、アドバイスをお願いします。

現在のタイムスタンプを使用して名前を付けるのが最も簡単です
$dest_file = $upload_path.basename($tmp_file);

$ext=pathinfo($tmp_file,PATHINFO_EXTENSION)$dest_file = $upload_path.time().'.'.$ext;
ログイン後にコピー
に変更します

または、urlencode よりも優れた Base64 エンコードを使用します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート