thinkphp文件上传以及 unable to create temporary file in 警告

在使用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(即今日)的文件夹,下的图片。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值