`

spring-mvc提供上传图片接口

阅读更多
下面提供上传的接口 适用于java代码模拟post请求 如果是html或者jsp页面的post提交则直接用注解来实现


服务端代码
@SuppressWarnings("unused")
	@RequestMapping(value = "/{uid}/img/uploadAuthImg", method = {
			RequestMethod.GET, RequestMethod.POST })
	public String uploadAuth(@PathVariable int uid, HttpServletRequest request,
			HttpServletResponse response) throws UnsupportedEncodingException {
		response.setContentType("text/plain;charset=utf-8");
		request.setCharacterEncoding("UTF-8");
		JSONObject json = new JSONObject();
		try {
                   //未解析类提供配置信息  
                   // DiskFileItemFactory factory = new DiskFileItemFactory();  
                   //创建解析类的实例  
                   //ServletFileUpload sfu = new ServletFileUpload(factory);  
                   //设置文件的最大值,4M  
                   //sfu.setSizeMax(1024*1024*4);  
                        //ServletRequestContext src = new ServletRequestContext(request);   
			// List<FileItem> items = sfu.parseRequest(request);
			// for(FileItem item : items){
			// if(item.isFormField()){ //username="username"
			// String name = item.getFieldName();
			// String value = item.getString("utf-8");
			//
			// System.out.println(name + " = " + value);
			// } else { //鏂囦欢
			// String name = item.getName();
			// item.write(new File(dir, System.currentTimeMillis() +
			// name.substring(name.lastIndexOf("."))));
			//
			// }
			//
			// }

			// 读取数据流 这里因为在springmvc中配置了 所以用这种方式 上面的方式不可行了
			Map<String, String> param = ServletUtil.paramToMap(request);//其他的数据参数 如果是上面这种则会在name-value中取出来
			MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
			List<MultipartFile> fileList = multipartRequest.getFiles("file");
			InputStream is = null;
			for (MultipartFile mf : fileList) {
				if (!mf.isEmpty()) {
					String filename = mf.getOriginalFilename();
					System.out.println(filename);
					is = mf.getInputStream();
				}
			}
			// 下面就是对springmvc中的mf进行处理 可以处理成file 也可以处理成流来存储
			// 处理业务逻辑后再掉统一用户中心
			// String brandList = service.uploadAuthImg(param, is);上传到fastdfs中 
		} catch (Exception e) {
			logger.error(e);
			json.put(ResultKeyConstant.DATA, "");
			json.put(ResultKeyConstant.ERROR_CODE,
					ErrorCodeConstant.COMMON_UNKNOWN_ERROR);// 系统内部错误
			json.put(ResultKeyConstant.ERROR_MESSAGE, messageService
					.getMessage(ErrorCodeConstant.COMMON_UNKNOWN_ERROR));

		}
		try {
			PrintWriter out = response.getWriter();
			out.print(json.toString());
			out.close();
		} catch (Exception e) {
			logger.error(e);
		}
		return null;
	}



客服端请求 用的是httpcomponents-client-4.5.2-bin.tar这个httpclient实现的

	public static void main(String[] args) throws IOException {

		// HttpPost httppost = new
		// HttpPost("http://10.18.154.14:8080/open-web/api/upload/1234/img/uploadAuthImg2");
		// "F:"+File.separator+"ds.jpg"
		CloseableHttpClient httpclient = HttpClients.createDefault();
		try {
			HttpPost httppost = new HttpPost(
					"http://10.18.154.14:8080/open-web/api/upload/123/img/uploadAuthImg");
			FileBody bin = new FileBody(new File("F:" + File.separator
					+ "ds.jpg"));
			Map<String, Object> paramMap = new HashMap<String, Object>();
			paramMap.put("mid", "4c8cc01a-d280-48e7-a8ae-2cef232d85bc");
			paramMap.put("user_name", "测试测试");
			paramMap.put("type", "jpg");
			paramMap.put("identify", "430869594605632215");
			StringBody param = new StringBody(JSONObject.fromObject(paramMap)
					.toString(), ContentType.TEXT_PLAIN);
			HttpEntity reqEntity = MultipartEntityBuilder.create()
					.addPart("file", bin).addPart("param", param).build();
			httppost.setEntity(reqEntity);
			CloseableHttpResponse response = httpclient.execute(httppost);
			try {
				System.out.println("----------------------------------------");
				System.out.println(response.getStatusLine());
				HttpEntity resEntity = response.getEntity();
				if (resEntity != null) {
					String result = EntityUtils.toString(resEntity);
					System.out.println(result);
				}
				// EntityUtils.consume(resEntity);
			} finally {
				response.close();
			}
		} finally {
			httpclient.close();
		}
	}

分享到:
评论

相关推荐

    spring4.3.9相关jar包

    spring-web.jar(必须) :这个jar 文件包含Web 应用开发时,用到Spring 框架时所需的核心类,包括自动载入Web Application Context 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。...

    spring4.1核心包

    包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 18. spring-webmvc-4.1.1.RELEASE.jar 包含...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言支持 2.6.2. JMX 2.6 .3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring 2.0 ...

    springmvc demo

    Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发...

    spring mvc 3.2 参考文档

    DispatcherServlet 设计的,并分发请求到处理程序(handler),Spring MVC支持可配置的处理程序映射(handler mapping),视图解析(view resolution)、 区域设置(locale)和主题解析(theme resolution),以及文件上传等...

    基于Spring MVC的web框架 1.1.11

    版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) ...

    基于SpringMVC+Hibernate4的考勤管理系统+.zip

    基于SpringMVC+Hibernate4的考勤管理系统+.zip 项目环境 系统:Windows7 X64位系统 IDE:Intellij IDEA 14.0 后端技术选型 J D K 版 本:JDK 1.8 数 据 库:Mysql 5.7 ...spring-webmvc-4.0.0.RELEASE

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 mysql版本_spring3.0

    【源码】mysql版本_spring3.0 系统模块 1....服务器内部GET POST 请求 25.uploadify 上传插件,单条、批量上传,带进度条,异步,图片、视频, 其它文件格式均可上传 26.地图选点获取经纬度坐标,根据俩经纬度计算距离

    SpringMVC基础上的web框架

    这个框架是在学习Spring的时候,为了积累学习成果,自己搭建的,一般的系统开发也可以直接使用,包括一个系统开发的基础功能。 以下是当时自己开发时的日志,大致可以说明框架里已有功能 1.0.5 从web项目迁移成maven...

    spring-a-gram:使用Spring Data REST上传,存储和管理图片

    Spring Data REST从那里开始使用Spring MVC来创建一个超媒体驱动的RESTful接口,该接口允许您创建,读取,更新和删除数据。 此示例应用程序演示了如何声明一个旨在存储图像数据的后端如何使上传图片然后转身显示在...

    spring MVC 3.1 spring security 注解实现安全机制

    spring MVC 3.1+spring security3.1+mybaits+ 注解 实现安全机制。jar包没有上传。自己补充

    基于SpringBoot和Vue构建的文件分享系统,包括文件的上传与下载,文件的权限管理,远程文件管理等.zip

    spring-boot-starter-web 为开发人员提供了嵌入的 Tomcat 和 Spring MVC 的依赖,可以快速构建 MVC 模式的 Web 工程。 在SOA和微服务中,用 Spring Boot 可以包装每个服务。Spring Cloud 即是一套基于 Spring Boot ...

    spring security 参考手册中文版

    5.1.3使用Spring MVC的AbstractSecurityWebApplicationInitializer 32 5.2 HttpSecurity 32 5.3 Java配置和表单登录 34 5.4授权请求 35 5.5处理注销 36 5.5.1 LogoutHandler 37 5.5.2 LogoutSuccessHandler 37 5.5.3...

    JAVA(spring mvc)搭建了文件上传的接口,Android已经调试成功

    本人使用java搭建完成一个文件上传的接口,并且已经使用Android测试通过,仅供大家参考,谢谢。

    Spring MVC文件上传与下载

    Spring MVC 框架的文件上传是基于 commons-fileupload 组件的文件上传,只不过 Spring MVC 框架在原有文件上传组件上做了进一步封装,简化了文件上传的代码实现,取消了不同上传组件上的编程差异。 commons-...

    springMVC + Hibernate 工程模板

    spring增强性mvc hibernate dao 操作(一个basedao全部搞定) 两种配置:oracle mysql,切换数据库只要把SessionFactory的配置文件改成对应就可以了 c3p0配置:mysql调试通过,oracle由于存在问题,未配置 spring...

    spittr:RESTful API服务器,由Spring,Spring MVC,MyBatis基于Java 8,MySql,Redis实现

    概览spittr 该名字来源于《Spring 实战》一书,接口设计使用 restful 风格。该项目使用的技术:SpringSpring MVCMyBatis 3.4Spring-testJUnitRedisMySqlJWT配置数据库脚本:schema.sql 。根据需要更改 application....

    基于spring + spring mvc + mybatis + layui微信小程序带后端ssm接口小区物业管理平台

    基于微信小程序开发的一个物业管理平台app,后端接口采用ssm的框架,系统有2个身份管理员和业主。用户在小程序客户端打开使用,用户注册登录后可以查询社区公告信息,可以上报故障报修,可以参与问卷调查,可以提交...

    (2.0版本)自己写的struts2+hibernate+spring实例

    aop.jar spring-dao.jar spring-hibernate.jar spring-jdbc.jar spring-mock.jar spring-orm.jar spring-remoting.jar spring-support.jar spring-webmvc.jar

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 oracle版本_spring3.0

    【源码】oracle版本_spring3.0 系统模块 1....服务器内部GET POST 请求 25.uploadify 上传插件,单条、批量上传,带进度条,异步,图片、视频, 其它文件格式均可上传 26.地图选点获取经纬度坐标,根据俩经纬度计算距离

Global site tag (gtag.js) - Google Analytics