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

做的网站一直刷新洛阳霞光做网站的公司

做的网站一直刷新,洛阳霞光做网站的公司,没有备案的网站可以用ip访问吗,旅游在哪个网站做攻略Spring Boot 中文件上传 一、MultipartFile二、单文件上传案例三、多文件上传案例四、Servlet 规范五、Servlet 规范实现文件上传 上传文件大家用的最多的就是 Apache Commons FileUpload#xff0c;这个库使用非常广泛。Spring Boot3 版本中已经不能使用了。代替它的是 Sprin… Spring Boot 中文件上传 一、MultipartFile二、单文件上传案例三、多文件上传案例四、Servlet 规范五、Servlet 规范实现文件上传 上传文件大家用的最多的就是 Apache Commons FileUpload这个库使用非常广泛。Spring Boot3 版本中已经不能使用了。代替它的是 Spring Boot 中自己实现的文件上传。Spring Boot 上传文件现在变得非常简单。提供了封装好的处理上传文件的接口 MultipartReslover用于解析上传文件的请求它的内部实现类 StandardServletMultipartResolver。之前常用的 CommonsMultipartResolver 不能使用了。 CommonsMultipartResolver 是使用 Apache Commons File Upload 库时的处理类。 一、MultipartFile StandardServletMultipartResolver 内部封装了读取 POST 请求的请求体中的数据也就是文件内容。我们只需要在 Controller 的方法中加入形参 ReqestParam(“参数名”) MultipartFile file。MultipartFile 表示上传的文件其提供了方便的方法保存文件到磁盘。public interface MultipartFile extends InputStreamSource {String getName();//返回参数的名称NullableString getOriginalFilename();//获取上传文件的名称NullableString getContentType();//返回文件的内容类型boolean isEmpty();//判断是否为空或者上传的文件是否有内容long getSize();//返回文件大小 以字节为单位byte[] getBytes() throws IOException;//将文件内容转化成一个byte[] 返回InputStream getInputStream() throws IOException;//返回InputStream读取文件的内容default Resource getResource() {return new MultipartFileResource(this);}//保存上传文件到目标Dest中void transferTo(File dest) throws IOException, IllegalStateException;default void transferTo(Path dest) throws IOException, IllegalStateException {FileCopyUtils.copy(this.getInputStream(), Files.newOutputStream(dest));} }二、单文件上传案例 创建两个静态页面一个用来上传文件使用表单的方式另一个用来显示文件上传成功。注意静态资源放在 static 目录下否则访问不到资源 使用表单的方式上传文件必须满足的三个要求 ① enctype“multipart/form-data”② method“post”③ input type“file” value“选择文件” name“uploadFile” !-- 文件名uploadfile.html -- !DOCTYPE html html langen headmeta charsetUTF-8title上传文件/title /head bodyh3上传文件/h3div/divform actionuploadFile enctypemultipart/form-data methodpost选择需要上传的文件input typefile value选择文件 nameuploadFile brinput typesubmit value上传文件/form /body /html!-- 文件名upload_success.html -- !DOCTYPE html html langen headmeta charsetUTF-8title文件上传成功/title /head bodyh3文件上传成功/h3 /body /html编写controller方法获取请求然后保存文件。Controller public class UploadFileController {PostMapping(/uploadFile)public String uploadFile(RequestParam(uploadFile) MultipartFile multipartFile) throws IOException {//首先判断上传的文件是否为空if (!multipartFile.isEmpty()) {String suffix .unknown;//初始文件后缀为不知道String name multipartFile.getOriginalFilename();//获取上传的文件名System.out.println(name);//获取文件的后缀if (name ! null name.indexOf(.) 0) {suffix name.substring(name.indexOf(.));}String dest UUID.randomUUID() suffix;//生成保存的文件名multipartFile.transferTo(new File(G:/files/ dest));//保存文件到指定位置}//防止刷新重复上传return redirect:/upload_success.html;} }编写错误页面 在 SpringBoot 中 /static/error/5xx.html 文件 如果出现 5xx 的错误自动跳转到整个页面。在 SpringBoot 中 /static/error/4xx.html 文件 如果出现 4xx 的错误自动跳转到整个页面 。 !-- 文件名5xx.html -- !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body h3出现了 5XX 错误/h3 /body /html!-- 文件名4xx.html -- !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body h3出现了 4XX 错误/h3 /body /html设置上传文件的大小 Spring Boot 默认单个文件最大支持1M一次请求最大10M。改变默认值需要修改 application.yml 配置文件。file-size-threshold 超过指定大小直接写文件到磁盘不在内存处理。 不能只考虑SpingBoot每次请求的文件最大大小还需要设置服务器每次请求的大小。 三、多文件上传案例 多文件上传在接收文件参数部分有所改变 MultipartFile[] files。循环遍历数组解析每一个上传的文件。前端通过 form 表单上传多文件。!DOCTYPE html html langen headmeta charsetUTF-8title上传文件/title /head bodyh3上传文件/h3div/divform actionuploadFile enctypemultipart/form-data methodpost选择需要上传的文件 1input typefile value选择文件 nameuploadFile br选择需要上传的文件 2input typefile value选择文件 nameuploadFile br选择需要上传的文件 3input typefile value选择文件 nameuploadFile brinput typesubmit value上传文件/form /body /html四、Servlet 规范 Servlet3.0 规范中定义了 Jakarta.servlet.http.Part 接口处理 mulitipart/form-data POST 请求中接收到的表单数据。有了 Part 对象其 write() 方法将上传文件保存到服务器本地的磁盘中。 在 HttpServletRequest 接口中引入的新方法 getParts()返回 Part 对象的集合。getPart(字符串名称)检索具有给定名称的单个 Part 对象。 Spring Boot3 使用的 Servlet 规范是基于 5 的所以上传文件使用的就是 Part 接口。 StandardServletMultipartResolver 对 Part 接口进行的封装实现基于 Servlet 规范的文件上传。 public interface Part {InputStream getInputStream() throws IOException;//获取输入流用于检索文件的内容String getContentType();//获取文件内容类型String getName();//获取file控件的name属性String getSubmittedFileName();//获取上传文件名Servlet3.1 Tomcat8.0实现long getSize();//获取上传文件的大小void write(String fileName) throws IOException; //将文件内容写入指定的磁盘位置void delete() throws IOException;//删除Part数据和临时目录数据,默认会删除String getHeader(String name);//获取指定请求头CollectionString getHeaders(String name);//获取指定header名称的集合数据CollectionString getHeaderNames();//获取所有请求头的名称 }五、Servlet 规范实现文件上传 PostMapping(/files)public String upload(HttpServletRequest request){try {for (Part part : request.getParts()) {String fileName extractFileName(part);part.write(fileName);}} catch (IOException | ServletException e) {throw new RuntimeException(e);}return redirect:/upload_success.html;}private String extractFileName(Part part) {String contentDis part.getHeader(content-disposition);String[] items contentDis.split(;);for (String s : items) {if (s.trim().startsWith(filename)) {return s.substring(s.indexOf() 2, s.length()-1);}}return ;}上传文件包含 header 头 content-disposition类似如下的内容可获取文件原始名称。 form-data; name“dataFile”;filename“header.png” application.yal 文件可配置服务器存储文件位置例如 spring.servlet.multipart.locationG:/files/
http://www.zqtcl.cn/news/83727/

相关文章:

  • 岫岩县网站建设wordpress从指定目录获取文章
  • 访问不了服务器网站吗做海报的软件
  • 电脑什么软件做短视频网站做网站分几步
  • wordpress网站发布时间潍坊专业网站制作公司营销
  • 常熟网站建设都找聚尚网络国外建站网址
  • 网站关键词没有指数珠海营销型网站
  • 网络营销导向的网站建设wordpress教程视频
  • 临安农家乐做网站wordpress简体中文下载
  • 网站推广风险南昌网站建设制作商
  • 中学加强校园网站内容建设开封市建设中专网站
  • 河北集团网站建设3d效果图制作软件
  • 网站开发技术人员保密协议wordpress role
  • 网站建设制衡水安徽网站建设
  • wordpress .net潍坊seo排名
  • 网站建设的总体需求wordpress 访问量过大
  • 南软科技网站开发江苏中兴建设有限公司网站
  • 做二手车放在哪个网站好网页界面设计中表单的组成部分有那四种
  • 网站建设公司2018win7系统优化大师
  • 门户网站 建设 通知微信卖货小程序怎么做
  • 浙江省互联网建设网站机械网站建设注意什么
  • 飞猪旅游的网站建设初中生怎么升大专学历
  • 电脑可以做网站服务器么电子商务网站建设与维护论文
  • 阿里巴巴网站建设哪家好长春免费网站制作
  • 专门做折扣的网站有哪些企业管理类的网站
  • 响应式网站开发方法商标设计网站猪八戒
  • 微商网站如何做推广seo推广宣传
  • 在线家装设计平台免费seo人员要先对网站进行诊断
  • 360网站拦截做做一个谷歌网站多少钱
  • 大连网站开发建站自己做一个简介的网页
  • phpcms wap网站搭建动态设计用什么软件