Thinkphp文件上传错误提示:不存在的图像文件,本地测试不会这样的,放到服务器才会这样,为什么?

错误的位置:ThinkPHP/Library/Think/Image/Driver/Gd.class.php  LINE: 42

js部分:

$(".upavater").change(function(){
  var fdpic=new FormData();
  var pic=$("#upavater").get(0).files[0];
  fdpic.append("pic",pic);
$.ajax({  
          url: avaterurl,  
          type: 'POST',  
          data: fdpic,  
          //async: false,  
          cache: false,  
          enctype: 'multipart/form-data',
          contentType: false, 
          processData: false
          success:function(d){colsole.log(d);}
      })
})

控制器部分:

public function avater(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =     3145728 ;// 设置附件上传大小3M
        $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath  =     "./Public/avater/"; // 设置附件上传根目录
        $upload->subName  =     array('date','Ym');
        $info   =   $upload->upload();
        if($Info){echo "上传成功";}else{echo "上传失败";}
        }

本地测试没有问题,但部署到linux服务器就出问题了。

阅读 10.2k
6 个回答

很久以前我自己的提问,现在回来回答一下:

这个提示在ThinkPHP 3.2中对应的代码是:

if(!is_file($imgname)) E('不存在的图像文件');

所以,应该是文件路径的问题。

如果也遇到了“非法图像”的问题,则可能是图片的格式有问题,具体问题不清楚。

查看图片目录文件是否存在,权限是否有

新手上路,请多包涵

怎么解决啊?也遇到了同样的问题,找半天也没找到原因??

这种情况多半是文件读写权限的问题!

给 Upload 文件夹权限

给 Upload 文件夹权限

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题