在File.php中有个方法
public function rule($rule)
{
$this->rule = $rule;
return $this;
}
这个方法可以重新定义文件名命名方式
public function upload_pic($file, $old_file="", $file_type="data"){
if(empty($file)){return $old_file;
}
$file_path = "";
$uploads = config('uploads_dir');
if(!empty($file_type)){
$uploads = $uploads .$file_type."/";
}
$dir = config('public_dir') . $uploads;
if(!empty($old_file)){
@unlink(config('public_dir').$old_file);
}
$rule = $this->myrule();
$info = $file->rule($rule)->move($dir); //上传文件同时使用rule()方法
$file_path = $uploads . $info->getSaveName();
return $file_path;
}
/*
* 批量上传文件名重复问题
*/
public function myrule(){
$time = time();
$rand = rand(1, 9999); //在原来的基础上新增了随机数,基本能避免重复问题,但不是绝对
$rule = md5($time.$rand);
return $rule;
}