Java客户端服务端上传接收⽂件实现详解
Java客户端通过HTTP协议上传⽂件, 服务端处理客户端请求, MultipartFile转File, 实现客户端上传⽂件的存储
Java环境: JDK1.8
开发环境: IDEA
SpringBoot: 2.2.0
Maven: 3.6.3
Java客户端通过HTTP协议上传⽂件
// 引⼊pom依赖, hutool相关⽂档, www.hutool/docs/
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.7</version>
</dependency>
HashMap<String, Object> paramMap = new HashMap<>();
//⽂件上传只需将参数中的键指定(默认file),值设为⽂件对象即可,对于使⽤者来说,⽂件上传与普通表单提交并⽆区别
paramMap.put("file", FileUtil.file("C:\\⽂件路径\\⽂件名称"));
String result = HttpUtil.post("服务端IP:端⼝", paramMap);
getsavefilenameJava服务端接收请求并实现⽂件的存储
⼯具类
public class Utils {
public static void saveFile( MultipartFile filecontent){
OutputStream os = null;
InputStream inputStream = null;
String fileName = null;
try {
inputStream = InputStream();
fileName = OriginalFilename();
} catch (IOException e) {
e.printStackTrace();
}
try {
String path = "C:\\test\\";
// 2、保存到临时⽂件
/
/ 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
// 输出的⽂件流保存到本地⽂件
File tempFile = new File(path);
if (!ists()) {
tempFile.mkdirs();
}
os = new Path() + File.separator + fileName);
// 开始读取
while ((len = ad(bs)) != -1) {
os.write(bs, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 完毕,关闭所有链接
try {
os.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Controller类
@Controller
public class FileController {
@RequestMapping("/")
@ResponseBody
public String index(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException { 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
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论