thinkphp文件上传类wamp环境无法上传文件问题解决-创新互联
环境:
成都创新互联长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为称多企业提供专业的成都做网站、成都网站设计,称多网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。1、wamp:php5.4.12
2、ThinkPHP_Extend_3.1.2 中UploadFile.class.php
代码:
function upload(){
import('UploadFile.class');
$upload = new UploadFile();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->savePath = './temp/';// 设置附件上传目录
if(!$upload->upload()) {// 上传错误提示错误信息
echo($upload->getErrorMsg());
}else{// 上传成功 获取上传文件信息
$info = $upload->getUploadFileInfo();
}
// 保存表单数据 包括附件数据
echo $info[0]['savename']; // 保存上传的照片根据需要自行组装
}
问题:
1、提示“非法上传文件”
2、提示“文件上传保存错误”
分析:
UploadFile.class.php文件中打印输出文件路径名:
echo $file['tmp_name']; D:\\wamp\\tmp\\phpF95B.tmp
这个路径名异常,应该是D:\wamp\tmp\phpF95B.tmp才能正常上传文件。
深入研究:
当magic_quotes_gpc是Off的时候,由于为$_FILES数组添加了addslashes作用,出现了问题。也就在 magic_quotes_gpc是Off的PHP环境下都会出现此问题。
解决:
UploadFile.class.php文件中进行文件路径处理,类文件的bug:
public function upload($savePath ='')入口方法进行处理
if (!get_magic_quotes_gpc()) {
$file['tmp_name'] = str_replace('\\\\', '\\', $file['tmp_name']);
}
最终解决问题。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享题目:thinkphp文件上传类wamp环境无法上传文件问题解决-创新互联
链接URL:http://ybzwz.com/article/dcoddh.html