Thinkphp上传文件

时间:2023-12-14 10:38:14
 //1.文件上传Onethink使用$uploads->upload()方法会出现bug,使用$uploads->uploadOne()方法
$config = array(
'maxSize' => 5242880,
'exts' => array('jpg','png','gif','jpeg','doc','xls','ppt','docx'),
'rootPath' => './Public/',
'savePath' => 'Admin/file/',
'saveName' => '',
'autoSub' => true,
'subName' => array('date','Ymd'),
);
$uploads = new \Think\Upload($config);
$result = $uploads->uploadOne(); //2.上传中文名文件会出现乱码
\Think\Upload\Driver\Local.class.php 文件 83行 改为
if (!move_uploaded_file($file['tmp_name'],iconv('utf-8','gb2312',$filename))) iconv()函数:iconv("utf8","gb2312",$string)//将字符串string 编码由utf8转变成gbk; //3.GB2312和GBK的区别
GBK: 汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,并涵盖了原Unicode中所有的汉字20902,总共收录了883个符号, 21003个汉字及提供了1894个造字码位。 Microsoft简体版中文Windows 95就是以GBK为内码,又由于GBK同时也涵盖了Unicode所有CJK汉字,所以也可以和Unicode做一一对应。 GB码,全称是GB2312-80《信息交换用汉字编码字符集 基本集》,1980年发布,是中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。P-Windows3.2和苹果OS就是以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码、但兼容支持GB2312。GB码共收录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼音排序,二级字3008,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。 GBK编码是*制订的、等同于UCS的新的中文编码扩展国家标准。GBK工作小组于1995年10月,同年12月完成GBK规范。该编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。