ホームページ  >  記事  >  バックエンド開発  >  move_uploaded_file ファイルのアップロードに失敗しました。アップロード後にファイル名が文字化けします。

move_uploaded_file ファイルのアップロードに失敗しました。アップロード後にファイル名が文字化けします。

WBOY
WBOYオリジナル
2016-07-29 09:15:091838ブラウズ

ウェブサイト: http://blog.sina.com.cn/s/blog_976934420101cpnz.html

早速、最初にコードを投稿しましょう

$filename = $_FILES['file'] [ 'name'];

$file = "../uploads/".$filename;

$file=iconv("UTF-8","GB2312//IGNORE", $file);

if (!move_uploaded_file ($_FILES['file']['tmp_name'],$file)){

echo "";

}

else{

$file=iconv("GB2312","UTF-8//IGNORE", $file) );

echo "<script>alert('アップロード成功、ファイルパスは "+.<span>$file.</span>+"!');</script>";

exit();

}

上記は、問題を解決するために使用したコードです。

プロジェクトがGB2312でエンコードされている場合、この問題は発生しません

$file=iconv("UTF-8","GB2312) //IGNORE", $ file); これは主にファイル パスのエンコーディングを変換するために使用されます。エンコーディングが変換されていない場合、ファイル パスまたはファイル名にスペースが含まれている場合や中国語の文字が含まれている場合、アップロードは失敗します。文字化けが表示されます。

必ずパスを追加してください。プロジェクトが UTF-8 であるため、GB2312 のパスとファイル名が文字化けして表示されます。

私のコード:

if ($upfile['error']==UPLOAD_ERR_OK){
// 拡張子 .txt .rar などを取得します。
// $extName=strto lower(end(explode('.' ,$upfile['name'])));
//サフィックスを含むファイルの実際の名前を取得します
$filename =$upfile['name'];
$filename=iconv("UTF-8"," GB2312//IGNORE",$filename);
// $filename=iconv("GB2312","UTF -8",$filename);
$dest="../doc/secure/"。 $filename;
// $dest=iconv("UTF-8","GB2312//IGNORE", $dest );
//doc ディレクトリに移動
//中国語の文字化けによりアップロードが失敗する可能性があります
if(!move_uploaded_file($upfile['tmp_name'],$dest)){
echo "";
}else{
} $filename=iconv("GB2312","UTF-8//IGNORE",$filename);
$path="doc/secure/" . $ FILENAME;
// フォームパラメータデポジットデータベースを取得します。 LE ]','$_SESSION[userID]')";
mysql_query($sql);
}
}


上記は、いくつかの側面を含めて、move_uploaded_file ファイルのアップロードに失敗する問題を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

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