大佬教程收集整理的这篇文章主要介绍了springboot上传图片文件相关知识,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这个作业属于哪个课程 | 2021春软件工程实践|W班(福州大学) |
---|---|
这个作业要求在哪里@H_874_12@ | 软件工程实践总结&个人技术博客@H_874_12@ |
作业正文@H_874_12@ | 分享技术相关的知识@H_874_12@ |
其他参考文献@H_874_12@ | ...@H_874_12@ |
在开发spring boot后端项目时,后端需要接收前端传来的图片文件,并且将其存储到服务器上,而且将相应的路径存储到数据库中方便能查找到该图片文件。学习该技术是因为我们在开发团队项目时要实现修改用户头像这一功能,这一技术难点就在于在如何接收图片文件以及接收之后将其存储到服务器的文件夹下,路径是否正确,文件是否可索引到。
1.在controller中的函数的参数中加@requestParam("avatar") MultipartFile image,即可接收来自前端传来的图片文件.
@requestMapping(value = "/uploadPic", method = requestMethod.POST)
public JSONObject getSubscription(@requestParam("avatar") MultipartFile imagE){
PictureUrlUtil.writePicture(image,headPicPath,headPath);
modifyInfoDao.setHeadPic(userId,headPicPath);
}
2.编写一个writePicture函数来将接收到的图片存储到服务器上,传入的filename为文件存储在服务器后的文件名,fileFolderName为服务器上文件夹的名称。
public static void writePicture(MultipartFile file,String filename,String fileFolderName){
try{
FiLeoutputStream picOutput = new FiLeoutputStream("/outfits/" + fileFolderName + "/" + fileName); //设置文件路径
picOutput.write(file.getBytes()); //获取字节流直接写入到磁盘内
picOutput.close();
}
catch (Exception E){
}
}
3.最后利用Dao层的函数来将图片路径存储到相应用户的数据库中。setHeadPic中传入的user_pic_path即存储在服务器上的图片的路径。
public interface ModifyInfoDao {
@update("updatE user set user_pic_path = #{user_pic_path} where user.id = #{user_iD}")
void setHeadPic(int user_id,String user_pic_path);
}
经过以上步骤,我们就可以向服务器上上传一张图片文件。
上传图片文件到服务器过程中,由于服务器是Linux系统,与我们平时使用的Windows系统不同,Linux文件路径与Windows有较大的差异,比如上传图片文件writePicture()函数中的FiLeoutputStream picOutput = new FiLeoutputStream("/outfits/" + fileFolderName + "/" + fileName);这个语句中文件名与文件路径之间要用"/"来隔开,而不是Windows中的""。这一点要注意,否则服务器上的文件就无法索引到。
spring boot中上传图片文件虽然步骤没有非常复杂,但是也有一些小细节,如果没处理好这些小细节,那么就会造成严重后果。通过学习这一相关知识,让我对spring boot相关的库函数了解更多。虽然经过了几次作业我学习了一些spring boot的基础知识,但是这还远远不够。要继续学习更多spring boot的高级知识来充实自己,这样以后毕业从事相关工作时可以减少学习的时间成本。
以上是大佬教程为你收集整理的springboot上传图片文件相关知识全部内容,希望文章能够帮你解决springboot上传图片文件相关知识所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。