Java客户端服务端上传接收文件实现详解
Java客户端通过HTTP协议上传文件,服务端处理客户端请求,MultipartFile转File,实现客户端上传文件的存储
Java环境:JDK1.8
开发环境:IDEA
SpringBoot:2.2.0
Maven:3.6.3
Java客户端通过HTTP协议上传文件
//引入pom依赖,hutool相关文档,https://www.hutool.cn/docs/cn.hutool hutool-all 5.3.7
HashMapparamMap=newHashMap<>(); //文件上传只需将参数中的键指定(默认file),值设为文件对象即可,对于使用者来说,文件上传与普通表单提交并无区别 paramMap.put("file",FileUtil.file("C:\\文件路径\\文件名称")); Stringresult=HttpUtil.post("服务端IP:端口",paramMap);
Java服务端接收请求并实现文件的存储
工具类
publicclassUtils{ publicstaticvoidsaveFile(MultipartFilefilecontent){ OutputStreamos=null; InputStreaminputStream=null; StringfileName=null; try{ inputStream=filecontent.getInputStream(); fileName=filecontent.getOriginalFilename(); }catch(IOExceptione){ e.printStackTrace(); } try{ Stringpath="C:\\test\\"; //2、保存到临时文件 //1K的数据缓冲 byte[]bs=newbyte[1024]; //读取到的数据长度 intlen; //输出的文件流保存到本地文件 FiletempFile=newFile(path); if(!tempFile.exists()){ tempFile.mkdirs(); } os=newFileOutputStream(tempFile.getPath()+File.separator+fileName); //开始读取 while((len=inputStream.read(bs))!=-1){ os.write(bs,0,len); } }catch(IOExceptione){ e.printStackTrace(); }catch(Exceptione){ e.printStackTrace(); }finally{ //完毕,关闭所有链接 try{ os.close(); inputStream.close(); }catch(IOExceptione){ e.printStackTrace(); } } } }
Controller类
@Controller publicclassFileController{ @RequestMapping("/") @ResponseBody publicStringindex(@RequestParam(value="file",required=false)MultipartFilefile,HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{ Utils.saveFile(file); return"Success"; } }
注意:
文件较大时spring-boot服务端报上传文件错误“spring.servlet.multipart.max-file-size”
可以修改配置文件:application.properties,添加以下配置..大小自行修改...
spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=200MB
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。