在使用thinkphp进行文件上传时,可能会报出以下警告。
以上是我使用postman进行上传图片的时候报出的异常,而导致图片无法上传。
该警告是因为你的php上传没有开启,或者是临时文件夹权限不够。
解决方法是两步。
1.开启上传功能,并设置临时文件夹。此时需要打开php.ini文件。
php.ini文件打开方式有两种:
1.如果使用的是phpstudy,那么直接可以打开配置文件php.ini。方式如图:
(请其他菜单选项->打开配置文件->php.ini)
2.也可以新建一个php文件,添加代码:<?php echo phpinfo(); ?> 如图:
然后在浏览器中打开该文件,即可查看php.ini的路径。
2.当我们打开php.ini文件时,找到以下代码:
去掉前面的分号,并添加临时文件夹,如下
其中:d:/temp是我自己设置的临时文件夹,你也可以设置成其他的,最后确定。
3.然后找到我们的临时文件夹,(我设置的是d:/temp,就在d盘下创建了temp文件夹),右击属性->
将权限设置为完全控制,即可。
5.我们在进行测试:
我们可以看到已经上传成功了。再看一下d:/temp:有临时文件生成。
6.以下是我在thinkphp中用到的上传的方法代码:
public function upload(){
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
// 移动到框架应用根目录/public/uploads/ 目录下
if($file){
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if($info){
// 成功上传后 获取上传信息
// 输出 jpg
echo $info->getExtension();
// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
echo $info->getSaveName();
// 输出 42a79759f284b767dfcb2a0197904287.jpg
echo $info->getFilename();
}else{
// 上传失败获取错误信息
echo $file->getError();
}
}
}
该方法上场文件到public/uploads目录下,如果成功。则返回该图片保存后的文件名。
查看thinkphp框架的目录:我们可以看到public/uploads下生成了20180907(即今日)的文件夹,下的图片。