温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

thinkphp 文件上传类wamp环境无法上传文件问题解决

发布时间:2020-07-07 03:22:37 来源:网络 阅读:794 作者:ljianbing 栏目:web开发

环境:

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']);

            }

最终解决问题。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI