php linux上传图片,【PHP】项目在Linux上的图片上传

这是一份源码

namespace app\data\util;

use think\helper\Str;

class UploadUtil

{

/**

* @var 文件信息think\file这个类

*/

private $file;

/**

* @var 上传图片的目录

*/

private $path;

/**

* 上传文件规则

*/

// protected $validate =[

// 'size' => 500000,

// 'ext' => 'jpg,png,gif,jpeg',

// ];

/**

* 文件上传

*

* @param file think\File

* @path 上传的目录 upload\goods

* @return array

*/

public function move($file,$path)

{

$this->file = $file;

// 获取上传的文件名

$fileName = $this->getFileName($path);

// 文件保存的地址

$save = $this->getFilePath($path);

$save = str_replace('application/','',$save);

// 判断保存的目录是否存在

if(!file_exists($save)){

mkdir($save,0777,true);

}

// 文件保存后的名字加类型

$image = $fileName['saveName'].'.'.$fileName['fileSuffix'];

// 开始上传 参数一:上传路径 参数二:文件名

$info = $file->validate(['size'=>20000000,'ext'=>'jpg,png,gif'])->move($save,$image);

// 获取上传后的文件名

$this->path = $path.'/'.$image;

# 去除public

$this->path = str_replace('/public','',$this->path);

if($info){

$resule = ['code'=>SUCCESS,'data'=>$this->path];

}else{

$resule = ['code'=>ERROR,'data'=>$file->getError()];

}

return $resule;

}

/**

* 配置保存路径

*

* @return array

*/

public function getFilePath($path)

{

return ROOT.'/'.$path;

}

/**

* 获取上传文件的信息 名字,类型,类型

*

* @return array

*/

public function getFileName()

{

// 获取文件信息

$name = $this->file->getInfo('name');

// 问件名1.jpg 所以需要转数组获取

$fileName = explode('.',$name);

return [

// 文件名

'formerlyName' => $fileName[0],

// 保存后的文件名

'saveName' => $fileName[0].time(),

// 文件后缀

'fileSuffix' => $fileName[1]

];

}

/**

* 保存后的文件路径

*

* @return array

*/

public function functionName($flag = true)

{

return ($flag) ? $this->path : ROOT.'/'.$this->path;

}

}

在common文件中定义一个常量

9d4b98380d0ad5dec06450b5db73b689.png

然后在配置文件里边定义

b425e56f04c31c0315b25f0b9e69d57a.png

调用

04bac53280fe3cf4855e9340d1c880b6.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值