第一种
//判断文件内容
if($request -> hasFile('avatar') && $request -> file('avatar') -> isValid()){
//文件扩展名
$file['ext'] = $request -> avatar -> extension();
//文件的路径
$file['path'] = $request -> avatar -> path();
//文件mime
$file['mine'] = $request -> avatar -> getMimeType();
//原始文件名
$file['originName'] = $request -> avatar -> getClientOriginalName();
//文件尺寸
$file['size'] = $request -> avatar -> getClientSize();
$file['uploadName'] = sha1($file['originName'].time().rand(1000, 9999)). '.'. $file['ext'];
$request -> avatar -> move('./uploads/', $file['uploadName']);
//获取所有数据
$data = $request -> all();
$data['avatar'] = './upload/'.$file['uploadName'];
$res = MemberModel::create($data);
dd($res);
}else {
$message = $request -> avatar -> getErrorMessage();
dd($message);
}
第二种
首先执行php artisan storage:link 生成公共磁盘
//对于上传文件的处理
//1、判断是否有文件上传成功
if($request -> hasFile('file') && $request -> file('file') -> isValid()){
//2、重命名文件
$filename = sha1($request -> file('file') -> getClientOriginalName() . time() . rand(1000,9999)) . '.' . $request -> file('file') -> getClientOriginalExtension();
//3、保存上传文件(获取临时文件的路径)
Storage::disk('public') -> put($filename,file_get_contents($request -> file('file') ->path()));
//4、给ajax一个响应应答
return response() -> json([
'errorCode' => '0',
'message' => '文件上传成功!',
'path' => '/storage/' . $filename
]);
}else{
//4、给ajax一个响应应答
return response() -> json([
'errorCode' => '1',
'message' => $request -> file('file') -> getErrorMessage(),
]);
}
第三种
用laravel的扩展类库上传到七牛
网友评论