laravel中图片的删除
一、总结
一句话总结:
laravel里面删除的话还是建议用Storage的delete方法,不建议用原生php的unlink方法,不然没找到文件可能会报异常
二、laravel删除图片
转自或参考:laravel删除图片
https://blog.csdn.net/weixin_39815001/article/details/84669705
/**
* 删除信用卡
* @param Request $request
* @return array|IlluminateHttpJsonResponse
* @throws AppExceptionsCustomException
*/
public function modifyCreditCardImg(Request $request)
{
$valid = Validator::make($request->all(), [
'id' => 'required|string|size:36'
]);
if ($valid->fails()) {
return array(
'code' => ExceptionErrorCode::CODEMUST,
'message' => $valid->errors()->first(),
'data' => $valid->errors()->first()
);
}
$credit_card = CreditCardImages::where(['id' => $request->id])->get()->first();
Storage::delete(str_replace('storage', 'public', $credit_card->image_positive));
Storage::delete(str_replace('storage', 'public', $credit_card->image_back));
CreditCardImages::where(['id' => $request->id])->delete();
return responseMessage([], ExceptionErrorCode::OPERATOR_OK);
}
三、laravel 图片上传和删除
转自或参考:laravel 图片上传和删除
https://blog.csdn.net/minose/article/details/79919649
记录一下过程,使用php原生的方法,上传图片后把图片的路径存储到了数据库。
$file =$request->file('pic'); $allowed_extensions = ["png","jpg","jpeg"]; if ($file->getClientOriginalExtension() && !in_array($file->getClientOriginalExtension(), $allowed_extensions)) { return redirect()->back()->withInput()->withErrors("只允许上传.jpg .png .jpeg"); } $path = 'storage/uploads/runner/'; $extension = $file->getClientOriginalExtension(); $fileName = str_random(10).'.'.$extension; $file->move($path,$fileName); $filePath = asset($path.$fileName); $runner->pic = $filePath;
在删除的时候使用php的unlink("$path")方法,这里要注意的是 $path是laravel下public目录后的相对路径,需要对字符串进行拼接。
$path = $runner->pic; $pos = strpos($path, 'storage'); /*dd($pos);*/ $path = substr($path,$pos,strlen($path));
unlink("$path");