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