java 调用Spring接口上传文件及其他参数填充
2019-09-08 09:49:15来源:博客园 阅读 ()
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; }
原文链接:https://www.cnblogs.com/seeyou1993/p/11473761.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:【基准测试】JMH 简单入门
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- Spring系列.ApplicationContext接口 2020-06-11
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash