thinkphp5上传图片在linux上出现错误

红色烟火 2020-04-30 01:05:37
下面是我处理图像文件的一个类

class Picture
{
public function Up($file,$type,$id=0)//(图片文件,什么需要处理,上传图片人的id号)
{
//进行图片命名和打开图片
$saveName=time();//获取时间挫
$image=Image::open($file);
//$link得命名规范,static/picture/数据库名/时间挫.png(最好是用户id+时间挫.png)

//图片处理,如果需要,可以在下面添加case进行图片处理,
switch($type){
//用户
case 'user':
$deal=$image->thumb(100,100,6);
$link=DS.'static'.DS.'picture'.DS.$type.DS.$id.'.png';
break;
//作品
case 'works':
$deal=$image->thumb(780,740,6);
$link=DS.'static'.DS.'picture'.DS.'works'.DS.$saveName.'.png';
break;
}
//上传图片
if($deal->save(realpath(ROOT_PATH.'public'.DS.$link))){
//echo $deal->width()."<br/>".$deal->height();
return $link;//放回路径
}else{
echo "图片处理失败,未知错误";
}
}
}

然后使用以下两个相差不多相同的去调用

第一个修改头像使用到图片(这个是可以的)

//修改当前用户头像
public function ReviseHead($file)
{
$id=Session::get('user_data.id');
$pictury=new Picture();//调用图像处理函数
$link=$pictury->Up($file,'user',$id);
if($this->where(['id'=>['=',$id]])->update(['head'=>$link])||$link){
return json(['return'=> "修改成功"]);
}else{
return json(['return'=> "修改失败"]);
}
}


第二个添加作品图片使用到图片(这个却出现错误)
//添加作品
public function WorksAdd($data)
{
try {
//图片处理,放回路径
$picture=new Picture();
$data['picture']=$picture->Up($data['picture'],'works');
$data['time']=date('Y-m-d');
$data['uid']=Session::get('user_data.id');
// 验证和写入数据库
if(!$this->allowField(true)->validate(true)->save($data))
{
return json(['return'=>$this->getError()]) ;
}else{
return json(['return'=>'作品添加成功']) ;
}
}catch (ErrorException $e){
//return $e->getMessage();
return json(['return'=>'作品添加失败,未知错误,请稍后再试']) ;
}
}


搞了好久了,做不成才来发帖请各路大神来帮帮我T _ T
...全文
368 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰月渊 2020-05-08
  • 打赏
  • 举报
回复
Linux对文件权限要求很严格、是不是目录没权限
下雨的声音丶 2020-05-08
  • 打赏
  • 举报
回复
报什么错你也不说一下

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧