Laravel更新商品图片时首图存入临时文件而非文件名问题
问题原因与解决方案:Laravel商品图片更新时第一个字段存入临时文件
嗨,这问题其实是个很小的疏忽!咱们来扒一扒你的代码:
在处理imageOne的代码段里,你最后给模型字段赋值的时候写错了:
// 这里错把文件实例赋值给了字段 $product->imageOne = $imageOne;
$imageOne是$request->file('imageOne')返回的上传文件对象(Illuminate\Http\UploadedFile实例),当你把这个对象存进数据库时,它会被序列化成临时文件的相关信息,而不是你期望的文件名。
而处理imageTwo和imageThree的时候,你都正确地把生成好的$filename字符串赋值给了对应字段,所以这两个字段能正常更新。
修复步骤
只需要把imageOne处理块的最后一行改成赋值$filename即可:
// 替换掉错误的赋值语句 $product->imageOne = $filename;
修改后三个图片字段的逻辑就完全统一了,都会将生成的文件名存入数据库,同时正确删除旧的图片文件。
内容的提问来源于stack exchange,提问作者mafortis
相关产品推荐
相关产品推荐

