当前位置: 首页 > news >正文

凡科做网站不要钱考证培训机构

凡科做网站不要钱,考证培训机构,seo难不难,农村网站建设调查报告概述 每次说起文件上传#xff0c;就不得不提一下前端的实现方式#xff0c;说来也奇怪#xff0c;本博主最热门的博客居然也是文件上传#xff0c;3万多的访问量占了总访问量的一多半#xff1a;《传统form表单提交方式的文件上传与文件存储》#xff0c;而且#xff…概述 每次说起文件上传就不得不提一下前端的实现方式说来也奇怪本博主最热门的博客居然也是文件上传3万多的访问量占了总访问量的一多半《传统form表单提交方式的文件上传与文件存储》而且今天搜索“form表单提交文件” 百度第一篇居然就是这篇自己写的文章下图留个纪念不知道以后会不会有变化 哈哈 但是由于这篇文章写得比较早博客玩的还不6文章排版很糟糕因此自己都不愿意看今天完成了一个类似的功能用户头像上传特此重写一篇巩固记忆。 本功能涉及到的几个知识点 1、controller层的接收方式 2、IO流相关的文件保存处理路径问题、写出方式 3、spring boot 自带tomcat上传文件最大值限制的设置 4、分系统分路径Windows 或 Linux 5、文件保存的常规实现思路 实现过程 控制器接收方式 以全栈的角度来分析这个功能当然少不了前端的实现但是目前多以前后端分离的方式来开发功能因此本篇博客着重讲解后端的spring boot的写法这是本人认为比较工整的写法对于前端的实现可以看本篇博客的补充篇《传统form表单提交方式的文件上传与文件存储》。 Controller的接收方式如下 ApiOperation(value 设置用户头像, notes 设置当前用户头像)PutMapping(/profiles)public SystemResult setUserProfile(RequestParam(required true) MultipartFile profile) {return userService.updUserProfile(profile);} 请求方式是PUTrequired true参数类型为MutipartFile  只要是Spring 生态的应用程序文件的接收都是使用MutipartFile这个类型它表示通过 mutipart 请求上传了的一个文件。如果多个文件上传那就用数组如 MutipartFile[] 。 Service处理 Controller接收到文件后Service需要完成两个大方向的处理1、保存文件2、路径存库 Overridepublic SystemResult updUserProfile(MultipartFile newProfile) {// 根据Windows和Linux配置不同的头像保存路径String OSName System.getProperty(os.name);String profilesPath OSName.toLowerCase().startsWith(win) ? SystemConstant.WINDOWS_PROFILES_PATH: SystemConstant.LINUX_PROFILES_PATH;if (!newProfile.isEmpty()) {// 当前用户User currentUser (User) SecurityUtils.getSubject().getPrincipal();String profilePathAndNameDB userDao.selectUserById(currentUser.getUserId()).getProfilePath();// 默认以原来的头像名称为新头像的名称这样可以直接替换掉文件夹中对应的旧头像String newProfileName profilePathAndNameDB;// 若头像名称不存在if (profilePathAndNameDB null || .equals(profilePathAndNameDB)) {newProfileName profilesPath System.currentTimeMillis() newProfile.getOriginalFilename();// 路径存库currentUser.setProfilePath(newProfileName);userDao.updateUserProfilePath(currentUser);}// 磁盘保存BufferedOutputStream out null;try {File folder new File(profilesPath);if (!folder.exists())folder.mkdirs();out new BufferedOutputStream(new FileOutputStream(newProfileName));// 写入新文件out.write(newProfile.getBytes());out.flush();} catch (Exception e) {e.printStackTrace();return new SystemResult(HttpStatus.OK.value(), 设置头像失败, Boolean.FALSE);} finally {try {out.close();} catch (IOException e) {e.printStackTrace();}}return new SystemResult(HttpStatus.OK.value(), 设置头像成功, Boolean.TRUE);} else {return new SystemResult(HttpStatus.OK.value(), 设置头像失败, Boolean.FALSE);}} 注释写的比较细文件的命名以及目录的创建也不需要多说什么了。 关于两个系统中使用的路径虽然Windows系统中都是使用反斜杠“\” 但是在Java中反斜杠需要转义比如“C:\\用户\\文件夹\\文件.txt”这样在存入数据库的时候也会比较难看后来经过测试发现在Java中使用“/”也是没问题的。上述代码两个路径常量如下 /** 头像保存路径 */public static final String WINDOWS_PROFILES_PATH C:/super_meeting/profiles/;public static final String LINUX_PROFILES_PATH /root/super_meeting/profiles/; 另外当前用户的获取是通过shiro中的安全管理器SecurityManager来取得的我们也可以让页面传入一个用户的ID如果页面知道的话这样就适用于任何使用场景了。 修改文件上传限制 如果做到上一步当你上传的文件过大可能总是会报如下异常 org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field profile exceeds its maximum permitted size of 1048576 bytes. 可以看到这是Spring Boot自带的tomcat对上传文件大小的限制我们需要增加一个配置信息 Configuration public class CommonConfiguration {/*** 文件上传配置在application配置文件中设置不起作用*/Beanpublic MultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory new MultipartConfigFactory();// 单个文件最大factory.setMaxFileSize(10240KB); // KB,MB// 设置总上传数据总大小factory.setMaxRequestSize(102400KB);return factory.createMultipartConfig();} } 网上还有直接写在application.properties文件中的方式但是本人亲测不管用虽然不是很喜欢这种配置类的书写方式但也没什么办法凑合着用吧。 配置文件的写法如下如果哪位测试可用的话请文末留言告诉我文末留言告诉我告诉我 spring.http.multipart.maxFileSize 10Mb spring.http.multipart.maxRequestSize100Mb 测试 查询数据库 打开swagger选择一张图片或者你自己写一个form表单都可以。 检查一下 系统盘 数据库 完美 综上就是文件上传的全过程其中省略了DAO层的代码不过这个不是重点重点还是我在概述中列出的那几项。如果有任何问题请文末留言。
http://www.huolong8.cn/news/373973/

相关文章:

  • 手机和pc网站关于网站建设的画册
  • 自己怎样建设网站娄底网站建设wyo8
  • 网站建设的原则 流程做实验的网站
  • 中国网站安 网站建设
  • 免费精准客源台州做网站优化哪家好
  • 做视频广告在哪个网站能够赚钱谁能给我一个网站谢谢
  • 营销型网站设计制作软件培训班
  • 广东贸易网站建设哪家品牌加盟
  • 服装 产品展示网站模板wordpress修改邮箱设置
  • 三合一网站有必要吗体彩足球竞彩比赛结果韩国比分
  • 网站建设人员分工wap浏览器手机版
  • 高考志愿网站开发ghost vs wordpress
  • 安阳专业做网站公司阿里巴巴建网站
  • 用php做网站用到的工具免费网站后台模板下载
  • 助企建站如何自己做个人微信小程序
  • 罗湖网站建设公司wordpress limit
  • 想学习网站建设wordpress修改描述
  • 做汽车配件的都在那个网站做呀响应式网站头部
  • asp网站设计要求小程序商城哪家好
  • 邯郸的网站建设wordpress出境游
  • 网站建设 大公司小公司四大商业网站
  • 做汽车英文网站网站开发 自定义首页显示
  • 外贸手机网站模板2023年没必要学php了
  • 中国wix网站制作公司专业零基础网站建设教学
  • 保定网站制作方案南京网站微信建设
  • 行业网站建设运营如何制作网页教程
  • 有没有专门做渔具的网站acf wordpress
  • 网站建设全部代码做门户网站代码质量方面具体需要注意什么
  • 网站建设的实践报告南京小程序开发
  • 婚纱摄影建设网站的目的商城网站制作报价