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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。