java 调用Spring接口上传文件及其他参数填充
第一步:在Spring配置中添加以下内容
<!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8" p:maxUploadSize="540000000" p:uploadTempDir="fileUpload/temp">
</bean>
第二步:编写上传Spring接口
/**
* 上传专报
*
* @param typeId
* @param userId
* @param file
* @return
*/
@ResponseBody
@RequestMapping(params = "uploadDoc")
public Return uploadDoc(@RequestParam(value = "file", required = true) MultipartFile file,String newFileName) {
Return r = new Return();
System.out.println(newFileName);
try {
// 3.保存word文件
if (file != null) {
// 文件存入临时目录
String thisFile = SaveFile.save(file, newFileName);
if(thisFile!=null){
r.setE(1);
r.setS("上传专报成功!");
}else{
r.setE(0);
r.setS("上传专报失败!");
}
}
} catch (Exception e) {
e.printStackTrace();
r.setS("系统异常");
}
return r;
}
/**
* 保存文件到临时目录
*
* @param files
* @param 保存文件路径包含文件名称
* @return
*/
public static String save(MultipartFile files,String newFilePath) {
String fileName = files.getOriginalFilename();
if (fileName == null) {
return null;
}
File file = new File(newFilePath);
if(!file.exists()){
try {
FileOutputStream fop = new FileOutputStream(file);
file.createNewFile();
// 获取文件字节
byte[] contentInBytes = files.getBytes();
fop.write(contentInBytes);// 写入本地
fop.flush();
fop.close();
return newFilePath;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
第三步:编写上传程序
上传程序所需jar:httpclient-4.5.3.jar,httpmime-4.5.3.jar
/**
* 上传文件到指定地址URL
*
* @param 本地文件
* @param 请求接口路径
* @param newfilePath 其他参数
* @return 是否成功
*/
public static boolean uploadFile(String filePath, String urlStr, String newfilePath) {
try {
String sTestsetFile = newfilePath;
String sURL = urlStr;//"http://localhost:8080/qxfw/productController.do?uploadDoc";
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost(sURL);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("newFileName", newfilePath, ContentType.TEXT_PLAIN);
// 把文件加到HTTP的post请求中
File f = new File(sTestsetFile);
builder.addBinaryBody("file", new FileInputStream(f), ContentType.APPLICATION_OCTET_STREAM, f.getName());
HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);
CloseableHttpResponse response = httpClient.execute(uploadFile);
HttpEntity responseEntity = response.getEntity();
String sResponse = EntityUtils.toString(responseEntity, "UTF-8");
if (sResponse.contains("成功")) {
return true;
} else {
return false;
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return false;
}
java 调用Spring接口上传文件及其他参数填充的更多相关文章
- Spring MVC上传文件原理和resolveLazily说明
问题:使用Spring MVC上传大文件,发现从页面提交,到进入后台controller,时间很长.怀疑是文件上传完成后,才进入.由于在HTTP首部自定义了“Token”字段用于权限校验,Token的 ...
- Spring MVC上传文件
Spring MVC上传文件 1.Web.xml中加入 <servlet> <servlet-name>springmvc</servlet-name> <s ...
- springboot(十七):使用Spring Boot上传文件
上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例. 1.pom包配置 我们使用Spring Boot最新版本1.5.9. ...
- (转)Spring Boot(十七):使用 Spring Boot 上传文件
http://www.ityouknow.com/springboot/2018/01/12/spring-boot-upload-file.html 上传文件是互联网中常常应用的场景之一,最典型的情 ...
- Spring Boot(十七):使用Spring Boot上传文件
Spring Boot(十七):使用Spring Boot上传文件 环境:Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0 一.pom包配置 <parent> ...
- 使用Spring Boot上传文件
原文:http://www.cnblogs.com/ityouknow/p/8298344.html 上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spri ...
- Spring Boot(十七):使用 Spring Boot 上传文件
上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个 Spring Boot 上传文件的小案例. 1.pom 包配置 我们使用 Spring Boot 版本 ...
- Spring MVC 上传文件
Spring MVC上传文件需要如下步骤: 1.前台页面,form属性 method设置为post,enctype="multipart/form-data" input的typ ...
- java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例
java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...
随机推荐
- A1137 | 录数据查询模拟
这应该是比较简单的一个模拟题,但是考试的时候花了较长的时间,并且最后一个case没过,丢了6分.这题的通过率不高,可见最后一个case还是有挑战性的. 考试的时候想的是在录数据的时候建立一个[ID]到 ...
- 【Python笔记】1、格式化输出(%用法和format用法)
转自:https://www.cnblogs.com/fat39/p/7159881.html 一.格式化输出1.整数的输出%o —— oct 八进制%d —— dec 十进制%x —— hex 十六 ...
- NOI2019 Day1游记
Day1挂了,没什么好说的... 开场T1想到70分暴力就走人了,后来发现可以写到85...(听说有人写dfs过了95?233333) T2刚了2个多小时,得到每次只在中间填最大值的结论后不会区间DP ...
- 传统IT容量估算思路
参考: https://www.cnblogs.com/zhangweizhong/p/5844961.html https://www.cnblogs.com/zhangweizhong/p/577 ...
- Mercurial 的hook使用
1. Handling repository events with hooks可以通过Mercurial版本管理工具提供的hooks机制来处理repo的各种事件,从而实现对Mercurial的扩展, ...
- noscript 标签介绍
noscript 标签介绍 一.总结 一句话总结: noscript 标签在不支持JavaScript 的浏览器中显示替代的内容. 1.noscript标签使用实例? html标签直接放在noscri ...
- Spring(二十三):Spring自动注入的实现方式
注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解包含:Autowrired/Resource/Qualifier/Service/Controller/Repository/C ...
- systemctl enable rc-local.service error
/******************************************************************************* * systemctl enable ...
- Android Sensor详解(1)简介与架构【转】
本文转载自:https://blog.csdn.net/u013983194/article/details/53244686 最近在学习有关如何porting sensor的东西,仅借此机会写博客来 ...
- Logstash配置以服务方式运行
Logstash官网最新版下载地址以及YUM源:https://www.elastic.co/cn/downloads/logstash Logstash最常见的运行方式即命令行运行 ./bin/lo ...