php utf8编码上传中文文件名出现乱码

下面我来总结一下php utf8编码上传中文文件名出现乱码解决办法,有碰这类问题的朋友可参考参考。

  1. if(isset($_FILES['file'])){
  2. $upload='upload/'.$_FILES['file']['name'];
  3. if(is_uploaded_file($_FILES['file']['tmp_name'])){
  4. //iconv函数解决上传文件中文名乱码的问题,但是不提倡文件名是中文的,特别是unix/linux环境下 ,当你要输出的时候,又要给变回来,iconv('gb2312',UTF-8',$upload)
  5. if(!move_uploaded_file($_FILES['file']['tmp_name'],iconv('UTF-8','gb2312',$upload))){
  6. echo 'failed';
  7. }else{
  8. echo 'success';
  9. }
  10. }
  11. else{
  12. echo 'failed';
  13. }
  14. }
  15. /******关于iconv函数的应用:string iconv ( string in_charset, string out_charset, string str )
  16. * in_charset:传入的文件的格式
  17. * out_charset:输出的文件的格式
  18. * str:文件路径
  19. *****/
  20. ?>