PHP上传文件名乱码,win环境。

服务器是win环境,上传中文文件名会乱码,网上说要加一句编码转换,请问怎么加,麻烦直接帮我加一下可以吗?我是美工,这个对我有点难。谢谢

<?php

// If you want to ignore the uploaded files,
// set $demo_mode to true;

$demo_mode = false;
$upload_dir = 'uploads/';
$allowed_ext = array('wer');

if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
exit_status('Error! Wrong HTTP method!');
}

if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){

$pic = $_FILES['pic'];

if($demo_mode){

// File uploads are ignored. We only log them.

$line = implode(' ', array( date('r'), $_SERVER['REMOTE_ADDR'], $pic['size'], $pic['name']));
file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);

exit_status('Uploads are ignored in demo mode.');
}

// Move the uploaded file from the temporary
// directory to the uploads folder:

if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name']))

{
exit_status('File was uploaded successfuly!');
}

}

exit_status('Something went wrong with your upload!');

// Helper functions

function exit_status($str){
echo json_encode(array('status'=>$str));
exit;
}

function get_extension($file_name){
$ext = explode('.', $file_name);
$ext = array_pop($ext);
return strtolower($ext);
}
?>

服务器是win环境,上传中文文件名会乱码,网上说要加一句编码转换,请问怎么加?
只要不乱码,重命名也可以。
我是美工,这个对我有点难。麻烦直接帮我加一下可以吗?谢谢了。

if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name']))
改为
if(move_uploaded_file($pic['tmp_name'], iconv("UTF-8","GBK",$upload_dir.$pic['name'])))追问

试了一下不可以哦,还是乱码,是WIN环境,是这个原因吗?我看网上说WIN,和CentOS写法不一样吗?

温馨提示:内容为网友见解,仅供参考
无其他回答

MinGW在Win10环境下中文乱码,CPP文件为UTF-8编码,什么原因
说明这个php文件保存的编码是gb2312的,所以输出的是乱码你把这个文件重新以u8的编码保存一下就行了,文件-》另存为,这里选择编码

php乱码怎么办?
在Linux环境下用gb2312编码虽然不会出现这些错误,但保存后的文件名出现乱码导致无法读取文件,这时可先将参数转换成操作系统识别的编码,编码转换可用mb_convert_encoding(字符串,新编码,原编码)或iconv(原编码,新编码,字符串),这样处理后保存的文件名就不会出现乱码,也可以正常读取文件,实现中文名称文...

PHP 解压缩中文文件名乱码
path = iconv("utf-8","gb2312",$path );转换下试试

电脑是日文系统的,php实现上传文件时,如果是中文名,就会乱码,使用iconv...
先确定php文件的编码格式是不是UTF-8的,比如在头部加:header('Content-Type: multipart\/form-data;charset=utf-8');再确认下文件上传时提交的文件名是否也是这个格式的

php文件打开乱码
PHP文件打开乱码,大致原因有以下两点:文件编码与编辑器默认编码不一致,会导致乱码;建议修改文件编码格式即可:文件被加密,也会导致文件乱码;需要解密才能查看源码。

php文件怎么打开是乱码?
再保存就可以去掉BOM信息了。php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。如果你的HTML文件文件出现了乱码问题,那么你可以在head标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。

vsftp,上传后文件中文乱码,在windows部分文字乱码,在linux中全部...
这个是终端显示的语言问题, 和服务器无关的。以后要是有linux shell编程, python开发,或者linux系统管理的问题,比如php tomcat都可以帮忙解决

怎样解决PHP中文乱码问题
1一般出现在网页,用网页上面的查看——编码——简体中文即可解决。2 出现乱码一般是Windows系统字库的问题,可能是系统错误或不正常关机造成的,也可能是某些软件需要使用操作系统以外的字库造成的。解决办法得看具体的问题,一般情况下的Windows乱码可以通过以下三种方法解决。第一种方法是下载 解决Windows...

php linux文件名乱码怎么解决
以flashfxp为例,打开站点管理器,选中站点,编码选择utf-8.确定,解决。

php打开文件路径问题(php文件怎么打开是乱码)
_FILES[myFile][tmp_name]文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir指定,但用putenv()函数设置是不起作用的。左键点击右下角绿色的图标。根据下图设置ApacheAlise目录-添加一个alias即可。出来的命令行窗口有明确的提示(别说你看不懂英文)。php文件之间...

相似回答